Android 在不破坏和重建活动的情况下改变景观布局

Android 在不破坏和重建活动的情况下改变景观布局,android,android-orientation,Android,Android Orientation,大家好,我是安卓新手,遇到了定位问题,我需要在横向和纵向中显示单独的布局,我分别设计并放置在布局大文件夹和布局大文件夹中。现在,当设备旋转到横向时,我需要更改布局,而不会破坏和重新创建活动 请帮我摆脱这个问题 提前感谢作为一名长期的Android程序员,我的建议是: 不要这样做 让活动以正确的布局被销毁和重建 只需搜索和研究在方向改变期间保存数据的所有几种方法,并将它们应用到您的具体案例中。下面是几个例子来说明: onCreate(Bundle)接收包含onSavedInstances(Bund

大家好,我是安卓新手,遇到了定位问题,我需要在横向和纵向中显示单独的布局,我分别设计并放置在布局大文件夹和布局大文件夹中。现在,当设备旋转到横向时,我需要更改布局,而不会破坏和重新创建活动

请帮我摆脱这个问题


提前感谢

作为一名长期的Android程序员,我的建议是:

不要这样做

让活动以正确的布局被销毁和重建

只需搜索和研究在方向改变期间保存数据的所有几种方法,并将它们应用到您的具体案例中。下面是几个例子来说明:

  • onCreate(Bundle)
    接收包含onSavedInstances(Bundle)期间保存的信息的Bundle
  • 使用一个没有UI的片段(不要调用CreateView),使用
    setRetainInstance(true)
    将其设置为在整个旋转过程中保留,并使用它来记住数据
  • 使用自动接收在上一个活动中生成的数据
  • 试试这个

    在每个活动的mainfest.xml中添加此代码

    android:ConfigChanges="keyboardHidden|orientation"   
    
    替换

    layout-large-land
    

    防止活动重新创建/销毁

    将属性
    android:configChanges=“orientation”
    添加到
    AndroidManifest.xml
    文件中的活动声明中

    android:configChanges
    属性的目的是防止在确实需要时重新创建活动


    让我知道它是否适用于您。

    谢谢Budius,但我的应用程序在解锁配置更改时显示android.view.inflateException而崩溃。您应该尝试修复该漏洞,而不是创建一个完全针对平台提供的所有优秀自动化方法的黑客。如果我解锁方向配置更改,我将获得性能问题,因为它需要重新加载复杂列表片段一次。这听起来像是使用我在第3项中提到的加载程序。我做了相同的操作,但当设备旋转到景观时,我需要更改布局。这是一种反模式,必须加以阻止。您必须管理重新创建活动的场景,因为它不仅发生在设备旋转时,而且发生在SO终止活动以释放内存时。使用Loader或ViewModel和Lifecycle组件管理布局配置更改和活动重新创建。我在该文件夹上得到错误标记,我尝试运行“您的项目包含错误,请在运行之前修复错误”希望您已经在res文件夹中创建了一个文件夹?在该文件夹中创建一个布局文件,并尝试使用ADT Bundle(Eclipse JUNO)运行ITIM来创建
    layout-land-large