Android: макет не отображается как вкладка - PullRequest
1 голос
/ 01 ноября 2010

У меня есть несколько вкладок, основанных на макетах с собственным описанием XML, но когда я попытался установить содержимое вкладок, я получил такой результат:

http://img266.imageshack.us/img266/1787/appnavihist.jpg

(белое поле с текстом является частью макета home.xml). Вот некоторый код:

    TabSpec spec = tabHost.newTabSpec("home").setIndicator("Home").setContent(R.id.LinearLayout_home);
    tabHost.addTab(spec);

main.xml:

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout android:id="@+id/LinearLayout_root" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">

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

    <FrameLayout android:id="@android:id/tabcontent" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
        <include layout="@layout/home"/>
    </FrameLayout>      

</LinearLayout>

Ответы [ 2 ]

2 голосов
/ 01 ноября 2010

Я думаю, что ваша проблема с макетом, который содержит элемент tabwidget, попробуйте добавить свойство android:orientation="vertical" в контейнер tabwidget:

<LinearLayout android:id="@+id/LinearLayout_root" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:orientation="vertical">

Шаблон Android по умолчанию для TabActivity выглядит следующим образом:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost"
android:layout_width="match_parent" android:layout_height="match_parent">
    <LinearLayout android:orientation="vertical"
    android:layout_width="match_parent" android:layout_height="match_parent">
        <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent"
            android:layout_height="wrap_content" android:layout_weight="0" />
        <FrameLayout android:id="@android:id/tabcontent"
            android:layout_width="match_parent" android:layout_height="0dip"
            android:layout_weight="1"/>
    </LinearLayout>
</TabHost>

Полагаю, это должно сработать и для вас.

0 голосов
/ 26 августа 2014

работает .. я попробовал ..

 <TabWidget android:id="@android:id/tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">
    </TabWidget>

но я точно понимаю, что мое требование с этим

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

[убрать лишний пробел под tabhost]

...