TabWidget - How to set position of indicator text?
android, tabwidget
Solution
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.
Note that the techniques for doing this won't necessarily be reliable in future Android releases, if they change up how a `TabHost` is constructed.
Is there a way to adjust the positioning of the indicator?
Starting with API Level 4 (a.k.a., Android 1.6), `TabHost.TabSpec` accepts a `View` as the indicator via `setIndicator()`. I haven't tried it, but it may give you greater control over the layout of an individual tab's indicator.
Problem
i'm trying to use TabHost and TabWidget in my Android application. This is my layout 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> ``` And my code: ``` 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); ``` The problem is that i do not want my tabs to be so tall (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. Seems like there is a "minimum required" height for the TabWidget (65px?) and the indicator is positioned at the bottom of this 65px? Is there a way to adjust the positioning of the indicator? Thanks!