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

时间:2014-10-15 09:04:23

标签: android android-layout

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

  • 布局(肖像):有3个textview,其中一个可见而其他textview已消失
  • layout-land :有3个textview,全部可见

从此处获得最佳答案>> Activity restart on rotation Android,我把

  

机器人:configChanges = “keyboardHidden |取向|屏幕尺寸”

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

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

效应 之前放置代码:活动和数据保持不变但无法更改屏幕布局土地/肖像

放入上面的代码后:保持活动,布局更改,但数据丢失

那怎么解决呢?

2 个答案:

答案 0 :(得分:0)

当你这样写:

android:configChanges="keyboardHidden|orientation|screenSize"

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

不需要这一行,只需使用资源限定符" land"创建另一个布局目录,dir应命名为" layout-land"并在其中添加您希望应用程序在横向模式下具有的布局,并通过更改保存数据。

像这样:

enter image description here

忽略图像中目录的内容。

答案 1 :(得分:0)

如何使用ScrollView

  1. 我用于自己的应用程序有一种更简单的方法,
  2. 你可以使用ScrollView并将你的小部件放在里面,这样就可以了 为landscapeportrait工作,你只需要一个 布局文件

  3. <强>示例

    <强> 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>