Android 上的选项卡名称居中

发布于 2025-01-08 18:12:20 字数 2063 浏览 0 评论 0原文

我按照官方的 HelloTabWidget Android 教程进行操作,效果非常好。接下来我删除了选项卡图标,它仍然可以正常工作。现在我想将选项卡文本在每个选项卡中水平和垂直居中,但我不知道如何实现。我尝试过搜索但找不到解决方案。

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

这是我的 onCreate main.java 文件:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  TabHost tabHost = getTabHost();  // The activity TabHost
  TabHost.TabSpec spec;  // Resusable TabSpec for each tab
  Intent intent;  // Reusable Intent for each tab

  intent = new Intent().setClass(this, Indkobsliste.class);
  spec = tabHost.newTabSpec("tab1").setIndicator("Tab1")
                .setContent(intent);
  tabHost.addTab(spec);

  intent = new Intent().setClass(this, Opskrifter.class);
  spec = tabHost.newTabSpec("tab2").setIndicator("Tab2")
                .setContent(intent);
  tabHost.addTab(spec);

  intent = new Intent().setClass(this, Madplan.class);
  spec = tabHost.newTabSpec("tab3").setIndicator("Tab3")
                      .setContent(intent);
  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_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="5dp">
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="5dp"/>
    </LinearLayout>
</TabHost>

这是我的选项卡现在的样子: 我的标签

I have followed the official HelloTabWidget Android tutorial and it works perfectly. Next I removed the tab icons and it still works perfectly. Now I would like to center the tabtext both horizontally and vertically in each tab, but I am clueless how. I've tried searching but couldn't find a solution.

I've tried adding android:layout_gravity to my main.xml file but it didn't help.

This is my onCreate main.java file:

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  TabHost tabHost = getTabHost();  // The activity TabHost
  TabHost.TabSpec spec;  // Resusable TabSpec for each tab
  Intent intent;  // Reusable Intent for each tab

  intent = new Intent().setClass(this, Indkobsliste.class);
  spec = tabHost.newTabSpec("tab1").setIndicator("Tab1")
                .setContent(intent);
  tabHost.addTab(spec);

  intent = new Intent().setClass(this, Opskrifter.class);
  spec = tabHost.newTabSpec("tab2").setIndicator("Tab2")
                .setContent(intent);
  tabHost.addTab(spec);

  intent = new Intent().setClass(this, Madplan.class);
  spec = tabHost.newTabSpec("tab3").setIndicator("Tab3")
                      .setContent(intent);
  tabHost.addTab(spec);

  tabHost.setCurrentTab(1);
}

This is the main.xml file:

<?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="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="5dp">
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="5dp"/>
    </LinearLayout>
</TabHost>

This is how my tabs look now:
My tabs

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坏尐絯 2025-01-15 18:12:20

如果您运行的 Android API 级别 >= 4,则可以使用 TabHost.TabSpec.setIndicator(查看视图)。这允许您指定任何视图,因此只需提供一个 垂直居中文本

但是,如果您运行的 API 级别较低,请尝试使用 这个其他 stackoverflow 问题。它建议使用反射来设置视图,即使 API 没有发布所需的 setIndicator 方法。

If you are running Android API Level >= 4, you can use TabHost.TabSpec.setIndicator(View view). This allows you to specify any view, so just provide one where you vertically center your text.

If, however, you are running a lower API level, try using the answer from this other stackoverflow question. It suggests using reflection to set the view even though the API does not publish the required setIndicator method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文