如何使用嵌套的ViewFlipper正确地扩充布局?

时间:2013-04-18 02:42:13

标签: android android-linearlayout viewflipper findviewbyid

我曾经有一个简单的main.xml布局,只有2个视图通过ViewFlipper包装器翻转。它使用以下代码工作(仍然有效):

setContentView(R.layout.main);
mTV1 = (TextView) findViewById(R.id.textview01);
mTV2 = (TextView) findViewById(R.id.textview02);
mViewFlipper = (ViewFlipper)findViewById(R.id.flipper01);

我现在想要在原始视图的顶部添加2个按钮,方式类似于this

<LinearLayout
 android:id="@+id/linearLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical" 
 xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
 android:id="@+id/linearLayout02" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content">
    <Button android:id="@+id/button01" android:layout_height="wrap_content" android:text="Button 1" android:layout_width="0dip" android:layout_weight="1"></Button>
    <Button android:id="@+id/button02" android:layout_height="wrap_content" android:text="Button 2" android:layout_width="0dip" android:layout_weight="1"></Button>
</LinearLayout>

<RelativeLayout
 android:id="@+id/relativeLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="0dp"
 android:layout_weight="1">
    <ViewFlipper
        android:id="@+id/flipper01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:id="@+id/textview01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text"
        />  
        <TextView
        android:id="@+id/textview02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text2"
        />  

    </ViewFlipper>
    </RelativeLayout>
</LinearLayout>

我的问题是我通过为复合布局插入findViewById来直观地修改原始代码:

setContentView(R.layout.main);
mCompositeLayout = (LinearLayout) findViewById(R.id.linearLayout02);
mTV1 = (TextView) findViewById(R.id.textview01);
mTV2 = (TextView) findViewById(R.id.textview02);
mViewFlipper = (ViewFlipper)findViewById(R.id.flipper01);

但它显示与以前完全相同!好像我从未添加包含按钮的额外linearLayout02。

我错过了什么?我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试project-&gt; clean(如果你使用Eclipse)并确保你正在编辑正确的main.xml文件。您的代码有效,无论CompositeLayout还是ViewFlipper都不重要,按钮都会被绘制。

如果您确定没有遗漏任何内容且仍未绘制按钮,请尝试将android:layout_weight添加到新的LinearLayout(包含按钮)中。 (对于我的Galaxy Nexus,一切都没问题,但由于Android设备碎片可能会出现问题)