我的一个活动布局中有一个 TabHost,有 4 个 TabSpec。我已将每个 TabSpec 的内容设置为不同的 LinearLayout,但只有第一个 TabSpec 实际显示 LinearLayout。我已经尝试了很多事情,但仍然无法弄清楚出了什么问题。这是我的代码:
public class ConversionActivity extends Activity {
PhConversion phc = new PhConversion();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_conversions);
TabHost th = (TabHost) findViewById(R.id.tabhost);
th.setup();
TabSpec spec1 = th.newTabSpec("TAB 1");
spec1.setContent(R.id.tab1);
spec1.setIndicator("pH");
TabSpec spec2 = th.newTabSpec("TAB 2");
spec2.setIndicator("Temp");
spec2.setContent(R.id.tab2);
TabSpec spec3 = th.newTabSpec("TAB 3");
spec3.setContent(R.id.tab3);
spec3.setIndicator("Length");
TabSpec spec4 = th.newTabSpec("TAB 4");
spec4.setContent(R.id.tab4);
spec4.setIndicator("Volume");
th.addTab(spec1);
th.addTab(spec2);
th.addTab(spec3);
th.addTab(spec4);
和 XML 代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:gesture-image="http://schemas.polites.com/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ConversionActivity" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="8"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
<TabHost
android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/given"
android:textSize="32sp" >
</TextView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ph"
android:textSize="20sp" >
</TextView>
<CheckBox
android:id="@+id/phBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="disableOthersPH" >
</CheckBox>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/poh"
android:textSize="20sp" >
</TextView>
<CheckBox
android:id="@+id/pohBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="disableOthersPOH" >
</CheckBox>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/h"
android:textSize="20sp" >
</TextView>
<CheckBox
android:id="@+id/hBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="disableOthersH" >
</CheckBox>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/oh"
android:textSize="20sp" >
</TextView>
<CheckBox
android:id="@+id/ohBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="disableOthersOH" >
</CheckBox>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/phconvinput"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="5"
android:inputType="numberDecimal" >
</EditText>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:onClick="solveph"
android:text="@string/phsolvebutton" >
</Button>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phsolution"
android:textSize="32sp" >
</TextView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ph"
android:textSize="20sp" >
</TextView>
<TextView
android:id="@+id/phanswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/somespace"
android:textSize="20sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/poh"
android:textSize="20sp" >
</TextView>
<TextView
android:id="@+id/pohanswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/somespace"
android:textSize="20sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/h"
android:textSize="20sp" >
</TextView>
<TextView
android:id="@+id/hanswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/somespace"
android:textSize="20sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/oh"
android:textSize="20sp" >
</TextView>
<TextView
android:id="@+id/ohanswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/somespace"
android:textSize="20sp" >
</TextView>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phsolution"
android:textSize="32sp" >
</TextView>
<ImageView
android:id="@+id/what"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/phschem" />
</LinearLayout>
<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textSize="32sp" >
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/tab4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
我意识到选项卡 3 和 4 是空的,但是当我单击它时,即使选项卡 2 仍然显示为空白,只有选项卡 1 显示了正确的线性布局。