首页 文章

在旋转屏幕时保持活动并使用不同的布局(陆地或肖像)

提问于
浏览
0

我希望在旋转屏幕时保持活动并使用不同的布局(横向或纵向) .

  • layout (portrait) :有3个textview, one is visible and other textview is gone

  • layout-land :有3个textview和 all is visible

从这里跟随最佳答案>> Activity restart on rotation Android,我把

android:configChanges =“keyboardHidden | orientation | screenSize”

在我的清单上,我把这个代码:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      setContentView(R.layout.myLayout);
    }

efect before put above code :活动和数据保持不变但无法更改屏幕布局土地/肖像

after put above code :保持活动,更改布局,但数据丢失

那怎么解决呢?

2 回答

  • 0

    当你写这个:

    android:configChanges="keyboardHidden|orientation|screenSize"
    

    您告诉系统您将自己处理旋转更改,因此它不会执行自动操作,例如通过查看模式更改来保存数据 .

    不需要这一行,只需用资源限定符“land”创建另一个布局目录,dir应命名为“layout-land”,并在其中放置您希望应用程序在横向模式下具有的布局,数据将通过改变得救 .

    像这样:

    enter image description here

    忽略图像中目录的内容 .

  • 0

    如何使用ScrollView?

    • 我用自己的应用程序有一种更简单的方法,

    • 你可以使用 ScrollView 并将你的小部件放在里面,这对 landscapeportrait 都有用,你只需要一个布局文件


    Sample

    activity_main.xml

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
    
            <!-- everything you already have -->
    
        </LinearLayout>
    </ScrollView>
    

相关问题