1

我的一个活动布局中有一个 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 显示了正确的线性布局。

4

1 回答 1

0

简而言之,LinearLayouttab1、tab2 和 tab3 的 s 是 tab1 的子项LinearLayout您的选项卡应该都是彼此的兄弟

以下是其他一些可能对您的布局有所帮助的项目:

  1. 我不确定为什么LinearLayoutwithandroid:id="@+id/linearLayout1"存在,所以我将其删除;
  2. 您不需要使用android:layout_alignParentLeftor android:layout_alignParentTopin your TabHost,因为它已经与父母的宽度和高度匹配,所以我会删除这些属性;
  3. 您正在android:layout_width="fill_parent"使用ImageView. 相反,您应该使用match_parent因为fill_parent已弃用。请参阅http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html#attr_android:layout_height,其中说fill_parent

视图应该与其父视图一样大(减去填充)。从 API 级别 8 开始不推荐使用此常量,并由 match_parent 替换。

于 2014-01-15T20:21:18.400 回答