Android ViewFlipper - 防止在ViewFlipper中分配所有布局

时间:2014-10-10 20:26:36

标签: android android-layout viewflipper

我的活动布局中有一个包含大量* .xml布局项(确切地说是108个)的ViewFlipper,问题是当我启动应用程序时,ViewFlipper中的所有布局都已分配。

有没有办法防止在启动时分配所有ViewFlipper项目并仅在加载viewflipper项目时进行分配?

我的main_activity.xml代码

<RelativeLayout 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"
    android:background="#ffececec"
    tools:context=".MyActivity">

    <ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/flipper"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <include android:id="@+id/pageMainWin"  layout="@layout/main_win" />
        // Other ViewFlipper items

    </ViewFlipper>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

尝试在布局中使用viewStub xml标记:

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/flipper"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

     <ViewStub
            android:inflatedId="@+id/pageMainWin"
            android:layout="@layout/main_win"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

</ViewFlipper>

然后在您的代码中,以编程方式夸大额外的xml布局资源

ViewStub stub = (ViewStub) findViewById(R.id.pageMainWin);
View inflated = stub.inflate();

有关viewstubs的更多信息:http://developer.android.com/reference/android/view/ViewStub.html