我正在尝试在我的应用程序上使用TabHost,我只是将它拖到我的活动中使用该设计,但是当我运行它时,它就不会出现,只是得到白色屏幕,有人知道为什么吗?
<TabHost android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tabHost" android:layout_gravity="center_horizontal"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content"></TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/tab1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"></LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"></LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"></LinearLayout> </FrameLayout> </LinearLayout> </TabHost>
解决方法
发生这种情况的原因很简单,因为您只能使用XML代码创建TabHost.您需要将TabSpec添加到TabHost,如下所示:
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); TabSpec tab1 = tabHost.newTabSpec("First Tab"); TabSpec tab2 = tabHost.newTabSpec("Second Tab"); TabSpec tab3 = tabHost.newTabSpec("Third Tab"); tab1.setIndicator("Tab1"); tab1.setContent(new Intent(this,TabActivity1.class)); tab2.setIndicator("Tab2"); tab2.setContent(new Intent(this,TabActivity2.class)); tab3.setIndicator("Tab3"); tab3.setContent(new Intent(this,TabActivity3.class)); tabHost.addTab(tab1); tabHost.addTab(tab2); tabHost.addTab(tab3);