在单个活动中使用多个布局

时间:2014-10-26 15:21:59

标签: android android-layout

我目前正在开发Android项目,我需要在同一个活动中使用多个布局。

当用户点击主布局中的按钮时,我需要另一个具有不同内容的布局(完全不同)。

我尝试在互联网上查找并发现可以使用Fragments,但据我所知,当需要在新布局中仅部分更改时使用片段,而我需要使用完全不同的布局。

另外,我发现了include,但这是在多个活动中使用相同的布局。 所以,不是我想要的。

有没有人知道如何做到这一点?

3 个答案:

答案 0 :(得分:2)

XML使用framelayout。将您的内容放在我提到的位置< - 您的布局 - >

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



        <LinearLayout
            android:id="@+id/Layout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:orientation="vertical" >

                            <--Your layout-->

                    <Button
                        android:id="@+id/Button1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="10dp"
                        android:text="Button" />
                </LinearLayout>



    <LinearLayout
        android:id="@+id/Layout2"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <--Your layout-->
    </LinearLayout>

</FrameLayout>

代码:设置onclick for button并设置可见性。

LinearLayout 1ayout1,layout2;
Button button1;

1ayout1 = (LinearLayout) findViewById(R.id.Layout1);
1ayout2 = (LinearLayout) findViewById(R.id.Layout2);
button1=(Button)findViewById(R.id.Button1);
button1.setOnClickListener(this);

1ayout1.setVisibility(LinearLayout.VISIBLE);
1ayout2.setVisibility(LinearLayout.GONE);

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
            1ayout2.setVisibility(LinearLayout.VISIBLE);
            1ayout1.setVisibility(LinearLayout.GONE);
    }
}

答案 1 :(得分:0)

尝试使用fragments
你可以在一个活动中显示许多片段

答案 2 :(得分:0)

我不认为片段只能用于部分更改,希望它也适用于动态视图

http://developer.android.com/guide/components/fragments.html