0

我在我的应用程序中将透明布局显示为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。两个 xml 的名称都是 new_overlay.xml。我认为它会作为android的属性自动完成。但没有运气。有人可以帮助我吗?

4

1 回答 1

0

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

android:configChanges="orientation|screenSize"

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

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

  • 在 onConfigurationChanged() 中处理布局更改
  • 或者从清单中删除这些选项(如果您信任许多关于此主题的博客,则不建议使用它们),并使用 onSaveInstanceState() 自己处理方向更改。这样layout-land xml将自动被识别。
于 2013-10-23T15:20:38.017 回答