2011-03-29 18 views
22

TextViews ile dinamik olarak doldurulmuş bir HorizontalScrollView var. Bazen bir, iki, üç veya daha fazla element vardır. Aradığım şey, elemanların sayısına bakılmaksızın öğelerin merkezlenmesinin bir yoludur.Merkezli öğelere sahip HorizontalScrollView

| ---- MenuA --- MenuB ---- | 

üç elemanları ile: iki öğe ile

| --------- MenuA --------- | 

: bir eleman ile örneğin

,

| - MenuA - MenuB - MenuC - | 

beş elemanları ile (MenuD ve menü gizlidir) :

| MenuA - MenuB - MenuC - Me| 

Güncelleştirme: İşte iki menü içeren basit bir düzen. MenuA ve MenuB'yi nasıl merkezlerim?

buldum:

android: layout_gravity = "center_horizontal" DÜZENLEME: 03.30

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <HorizontalScrollView android:id="@+id/horizontalScrollView1" 
     android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <LinearLayout android:id="@+id/linearLayout1" 
      android:layout_width="fill_parent" android:layout_height="fill_parent" 
      android:orientation="horizontal"> 
      <TextView android:text="MenuA" android:id="@+id/textView1" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
      <TextView android:text="MenuB" android:id="@+id/textView2" 
       android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
     </LinearLayout> 
    </HorizontalScrollView> 
</LinearLayout> 
+0

Yani, 'ScollView' yatay (ekrandan daha geniş), öğeler ekran merkezli mi? – Phonon

+0

Evet, HorizontalScrollView yataydır ve öğeler yatay olarak ortalanmalıdır –

cevap

29

yerçekimi özelliğini kullanın! sadece yerçekimini üst LinearLayout'a ayarlamak zorunda kaldı: tek yapmanız gereken, metin görüntülemelerini okumak için daha rahat hale getirmek için küçük bir dolgu/kenar boşlukları eklemek!

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical" > 

    <HorizontalScrollView 
     android:id="@+id/horizontalScrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" > 

     <LinearLayout 
      android:id="@+id/linearLayout1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/TextView04" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuB" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView03" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuB" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView02" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuB" > 
      </TextView> 

      <TextView 
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuB" > 
      </TextView> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuA" > 
      </TextView> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="MenuB" > 
      </TextView> 
     </LinearLayout> 
    </HorizontalScrollView> 

</LinearLayout> 

beni haberdar et!

+2

Ayarları denedim android: layout_gravity = "center_horizontal" ve TextViews hala sağda yer alıyor –

+1

Tam düzeninizi gönderebilir misiniz? – olamotte

+0

Aslında aslında 'android: gravity =' center_horizontal ''olmalıdır, çünkü' layout_gravity', HorizontalScrollView öğesinin ebeveyne yatay olarak yerleştirileceğinden, ancak, beklediğiniz gibi çalışacağından bile emin değilim. .. – kcoppock

İlgili konular