【发布时间】:2021-07-09 07:01:15
【问题描述】:
我有两个单独的 xml 文件,用于活动的 potrait 和横向视图,但是当我旋转手机时,xml 文件发生了变化,但活动重新启动。如何在不重新启动活动的情况下更改布局文件。
【问题讨论】:
标签: java android android-studio android-layout landscape-portrait
我有两个单独的 xml 文件,用于活动的 potrait 和横向视图,但是当我旋转手机时,xml 文件发生了变化,但活动重新启动。如何在不重新启动活动的情况下更改布局文件。
【问题讨论】:
标签: java android android-studio android-layout landscape-portrait
更好的方法是在您的活动中使用 ViewModel,这样即使它被破坏,您的数据也会保留在 ViewModel 中,并且可以在视图中创建后重新加载横向。
但是,如果您仍希望在不重新启动 Activity 的情况下处理布局更改,则需要进行以下更改
将 AndroidManifest 中的 android:configChanges 标志设置为 orientation
<activity
android:name="com.example.MainActivity"
android:configChanges="orientation"/>
在您的活动中覆盖onConfigurationChanged 方法并加载新视图。这部分有点棘手,因为在为新视图充气之前,您必须丢弃以前的视图。一种方法是在您的活动中添加一个容器,您可以在其中加载两个片段,一个用于纵向,一个用于横向。
欲了解更多信息,您可以阅读此documentation
请记住,虽然这可行,但不建议使用 android:configChanges 属性
【讨论】: