3

我的应用程序已android:targetSdkVersion设置为 11。它使用TabHostTabWidget两个选项卡。但是,android:minSdkVersion设置为 7 (Android 2.1)。

我使用 Android 支持库 ( android-support-v13.jar)。在我能够测试的所有地方,我的选项卡看起来都很好,除了在 2.1 中,它们似乎正在剪切构成选项卡内容的视图的一部分。这个问题在模拟器中也可以重现。

这是布局文件的相关部分:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/repeat_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

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

        <FrameLayout>
        ...
        </FrameLayout>
    </TabHost>
</LinearLayout>

以下是我希望标签的外观:

预期的

这是我在 2.3 设备中得到的:

意外

基本上,选项卡似乎比它们需要的高,并且也不必要地与FrameLayout下面的内容重叠。

解决方案: 主要针对未来的访问者,如果您希望标签在所有平台上保持一致,直到 2.1,唯一的解决方案是使用自定义标签视图。你会在这里找到一个很好的教程

4

1 回答 1

1

Try This

<?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">

    <LinearLayout  android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TabWidget android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:layout_weight="0" android:id="@android:id/tabs"
            android:orientation="horizontal" />

        <FrameLayout android:layout_width="fill_parent" android:layout_height="0dp"
            android:layout_weight="1" android:id="@+android:id/realtabcontent" />

    </LinearLayout>
</TabHost>

Hope it helps...!! Cheers...

于 2012-10-31T12:01:00.277 回答