在 Android 上居中选项卡名称

Posted

技术标签:

【中文标题】在 Android 上居中选项卡名称【英文标题】:Centering Tab Names On Android 【发布时间】:2012-03-15 04:49:53 【问题描述】:

我遵循了官方的 HelloTabWidget android 教程,它运行良好。接下来我删除了选项卡图标,它仍然可以正常工作。现在我想在每个选项卡中将 tabtext 水平和垂直居中,但我不知道如何。我试过搜索,但找不到解决方案。

我尝试将 android:layout_gravity 添加到我的 main.xml 文件中,但没有帮助。

这是我的 onCreate main.java 文件:

公共无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); 设置内容视图(R.layout.main); TabHost tabHost = getTabHost(); // 活动 TabHost TabHost.TabSpec 规范; // 每个选项卡的可重用 TabSpec 意图意图; // 每个选项卡的可重用意图 intent = new Intent().setClass(this, Indkobsliste.class); 规格 = tabHost.newTabSpec("tab1").setIndicator("Tab1") .setContent(意图); tabHost.addTab(spec); intent = new Intent().setClass(this, Opskrifter.class); 规格 = tabHost.newTabSpec("tab2").setIndicator("Tab2") .setContent(意图); tabHost.addTab(spec); intent = new Intent().setClass(this, Madplan.class); 规格 = tabHost.newTabSpec("tab3").setIndicator("Tab3") .setContent(意图); tabHost.addTab(spec); tabHost.setCurrentTab(1);

这是 main.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_
    android:layout_>
    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_
        android:padding="5dp">
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_
            android:layout_/>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_
            android:layout_
            android:padding="5dp"/>
    </LinearLayout>
</TabHost>

这是我的标签现在的样子:

【问题讨论】:

【参考方案1】:

如果您运行的是 Android API Level >= 4,则可以使用TabHost.TabSpec.setIndicator(View view)。这允许您指定任何视图,因此只需提供一个位于您vertically center your text 的视图。

但是,如果您运行的 API 级别较低,请尝试使用来自 this other *** question 的答案。它建议使用反射来设置视图,即使 API 没有发布所需的 setIndicator 方法。

【讨论】:

非常感谢。 .setIndicator 确实抱怨我使用 int,所以我在 *** 上进行了搜索,我看到了这个:link

以上是关于在 Android 上居中选项卡名称的主要内容,如果未能解决你的问题,请参考以下文章

如何垂直居中具有不同高度选项卡的对话框?

在选项卡中的列表视图中刷新活动 (Android)

Ionic 选项卡无法在 Android 上正确呈现?

android中的tabHost怎样在点击一个选项卡后跳转到一个activity,点击另一个选项卡跳转到另一个activity?

Android:为什么在创建选项卡时会调用onTabSelected?

如何通过 VBA 设置访问选项卡控件的页面名称