【问题标题】:changing diffirent layout file without restating activity在不重新启动活动的情况下更改不同的布局文件
【发布时间】:2021-07-09 07:01:15
【问题描述】:

我有两个单独的 xml 文件,用于活动的 potrait 和横向视图,但是当我旋转手机时,xml 文件发生了变化,但活动重新启动。如何在不重新启动活动的情况下更改布局文件。

【问题讨论】:

    标签: java android android-studio android-layout landscape-portrait


    【解决方案1】:

    更好的方法是在您的活动中使用 ViewModel,这样即使它被破坏,您的数据也会保留在 ViewModel 中,并且可以在视图中创建后重新加载横向。

    但是,如果您仍希望在不重新启动 Activity 的情况下处理布局更改,则需要进行以下更改

    1. AndroidManifest 中的 android:configChanges 标志设置为 orientation

      <activity
          android:name="com.example.MainActivity"
          android:configChanges="orientation"/>
      
    2. 在您的活动中覆盖onConfigurationChanged 方法并加载新视图。这部分有点棘手,因为在为新视图充气之前,您必须丢弃以前的视图。一种方法是在您的活动中添加一个容器,您可以在其中加载两个片段,一个用于纵向,一个用于横向。

    欲了解更多信息,您可以阅读此documentation

    请记住,虽然这可行,但不建议使用 android:configChanges 属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 2020-12-23
      • 2011-11-11
      • 2014-10-18
      • 2015-03-25
      • 2011-09-07
      • 1970-01-01
      相关资源
      最近更新 更多