其他分享
首页 > 其他分享> > android – TabWidget – 如何设置指标文本的位置?

android – TabWidget – 如何设置指标文本的位置?

作者:互联网

我正在尝试在我的Android应用程序中使用TabHost和TabWidget.这是我的布局main.xml:

<TabHost
    android:id="@+id/mainTabHost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="65px"/>
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout
            android:id="@+id/contentTags"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
        </LinearLayout>
        <LinearLayout
            android:id="@+id/contentPreferences"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
        </LinearLayout>
    </FrameLayout>
</TabHost>

我的代码:

final TabHost mainTabHost = (TabHost) this.findViewById(R.id.mainTabHost);
mainTabHost.setup();
final TabHost.TabSpec tabSpecTags = mainTabHost.newTabSpec("tabTags");
tabSpecTags.setIndicator(this.getString(R.string.tab_name_tags));
tabSpecTags.setContent(R.id.contentTags);
mainTabHost.addTab(tabSpecTags);
final TabHost.TabSpec tabSpecPreferences = mainTabHost.newTabSpec("tabPreferences");
tabSpecPreferences.setIndicator(this.getString(R.string.tab_name_preferences));
tabSpecPreferences.setContent(R.id.contentPreferences);
mainTabHost.addTab(tabSpecPreferences);

问题是我不希望我的标签太高(65px).但是,如果我将TabWidget的layout_height设置为例如30px,我根本看不到标签上的标签标签(指示灯).

似乎TabWidget(65px?)有一个“最低要求”高度,指示器位于这个65px的底部?

有没有办法调整指标的位置?

谢谢!

解决方法:

However, if i set the layout_height of
the TabWidget to e.g. 30px, i can’t
see the tab labels (indicator) on the
tabs at all.

请注意,如果它们改变了TabHost的构造方式,那么在未来的Android版本中执行此操作的技术不一定是可靠的.

Is there a way to adjust the
positioning of the indicator?

从API Level 4(a.k.a.,Android 1.6)开始,TabHost.TabSpec通过setIndicator()接受View作为指标.我没有尝试过,但它可以让您更好地控制单个选项卡指示器的布局.

标签:android,tabwidget
来源: https://codeday.me/bug/20190527/1159615.html