在 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中的tabHost怎样在点击一个选项卡后跳转到一个activity,点击另一个选项卡跳转到另一个activity?