在横向模式下加载viewstub

时间:2013-09-06 15:19:17

标签: android android-layout

我在我的应用程序中显示透明布局作为viewstub。

    ViewStub newview = (ViewStub) findViewById(R.id.newstb);    
mButtonSave.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                if (shouldShowInstructions()) {

                    // Shows the instructions view and returns
                    newview.setVisibility(View.VISIBLE);

                    mIsShowingIntsructions = true;
                    return;
                } else {

                    // some execution
                }
            }
        });

在按钮点击上正确显示。这是xml:

     </LinearLayout>

     <ViewStub
        android:id="@+id/newstb"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout="@layout/new_overlay"
        android:visibility="gone" />


</RelativeLayout>

现在,当用户旋转屏幕时,我想从layout-land获取xml。两个xmls的名称都是new_overlay.xml。我以为它将作为android的属性自动完成。但没有运气。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

查看您的清单并检查您是否设置了该属性

android:configChanges="orientation|screenSize"

针对该特定活动。如果是这种情况,则不会自动加载layout-land xml。

在这种情况下,您有两个选择:

  • 处理onConfigurationChanged()
  • 中的布局更改
  • 或者从清单中删除这些选项(如果您信任关于此主题的许多博客,则不建议使用它们),并使用onSaveInstanceState()自行处理方向更改。这样就可以自动识别layout-land xml。