2012-08-10 10 views
12

Birden fazla düğüme sahip olduğum bir sekme ana bilgisayarım var. Ancak ekran sadece 3-4 tuşunu gösterir.Android'de tabhost'ta kaydırma ekleme

Görüntü ile birlikte kullandığım kod aşağıdadır. Düştüm nasıl

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#777777"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 

     > 
     <RelativeLayout 
      android:id="@+id/layTab" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:background="@drawable/navbar_background" 
      android:layout_alignParentBottom="true" 
      android:layout_centerVertical="true" 
      > 
      <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      /> 
     </RelativeLayout> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_alignParentTop="true" 
      android:layout_above="@+id/layTab"/> 


    </RelativeLayout> 
</TabHost> 

enter image description here

sorudur

i 6 düğmeler ya da başka herhangi bir hile kadar kaydırma yapabilirsiniz böylece kaydırma eklemek varsayalım.

Saygılarımızla

böyle

cevap

23

Sadece yuva bir HorizontalScrollingView içeride TabWidget:

arada
<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#777777" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <RelativeLayout 
      android:id="@+id/layTab" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/navbar_background" 
      android:gravity="center" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" > 

      <HorizontalScrollView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:fillViewport="true" 
       android:scrollbars="none" > 

       <TabWidget 
        android:id="@android:id/tabs" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" > 
       </TabWidget> 
      </HorizontalScrollView> 
     </RelativeLayout> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_above="@+id/layTab" 
      android:layout_alignParentTop="true" /> 
    </RelativeLayout> 

</TabHost> 

, bu çözüm

+0

için çalışmıyor örneğin, diğer birçok senaryolar için RadioGroup işleri Bu, radyo grubuna ihtiyacım yok: d –

+0

Evet, yanlış yaptım. TabWidget'in iç içe olması gerekiyor ... Cevabımı düzenledim. Şimdi deneyin –

+0

Ayrıca iki RelativeLayouts içine HorizontalScrollView yerleştirmek için gerekli mi? Yuvalarım şu şekilde gider: Göreceli> TabHost> Doğrusal> Yatay> TabWidget ve kaydırmaz. Sizce API 2012'den beri değişti mi? – James

İlgili konular