In meiner Tätigkeit gezogen ich dies die TabHost Setup zu tun:Streifen unter dem Reiter nicht
//...
mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mTabHost.getTabWidget().setDividerDrawable(R.drawable.my_divider_tab);
mTabHost.getTabWidget().setStripEnabled(true);
mTabHost.getTabWidget().setLeftStripDrawable(R.drawable.my_strip_tab);
mTabHost.getTabWidget().setRightStripDrawable(R.drawable.my_strip_tab);
setupTab(new TextView(this), getString(R.string.device_text_tab));
setupTab(new TextView(this), getString(R.string.sensor_text_tab));
setupTab(new TextView(this), getString(R.string.actuator_text_tab));
//...
private void setupTab(final View view, final String tag) {
View tabview = createTabView(mTabHost.getContext(), tag);
TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview).setContent(new TabContentFactory() {
public View createTabContent(String tag) {return view;}
});
mTabHost.addTab(setContent);
}
private static View createTabView(final Context context, final String text) {
View view = LayoutInflater.from(context).inflate(R.layout.state_tabwidget, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}
my_strip_tab.xml ist nur eine rechteckige Form:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#FFFFFF"/>
<size
android:width="0dp"
android:height="2dp"/>
</shape>
Der vertikale Teiler ist gezeichnet. Aber der Streifen unter den Tabs ist nicht gezeigt ...
Was könnte das Problem sein? Die Größe von my_strip_tab
?
Ich fand nur, dass:
/**
* Controls whether the bottom strips on the tab indicators are drawn or
* not. The default is to draw them. If the user specifies a custom
* view for the tab indicators, then the TabHost class calls this method
* to disable drawing of the bottom strips.
* @param stripEnabled true if the bottom strips should be drawn.
*/
hier: TabWidgetExample
So scheint es, wie wenn wir benutzerdefinierte Ansicht für die Registerkarten verwenden (wie ich tue), wird das Band automatisch deaktiviert ... Wie kann ich es aktivieren?
Ich hatte das gleiche Problem. Ich löste es, indem ich 1) meine setStrip-Zeilen unter dem Einrichten meines Tabstopps bewegte und 2) mein Zeichenfeld keine Größe festlegte. Funktioniert jetzt gut, dank Amp und @brian wang – kyle