使用android:configChanges =“ orientation | screenSize” />,它就改变了我的横向布局

时间:2018-12-13 00:02:40

标签: android android-studio android-layout android-configchanges

当我放入

activity android:name=".MainActivity" 
android:configChanges="orientation|screenSize" 

并针对我的每个活动进行操作,当我在模拟器中翻转方向时的布局与我在设计模式下的布局不匹配。

之前,当我没有configChanges时,它将可以完美地工作,除非我正在播放音频,否则它将继续播放,并且我没有办法暂停刚开始播放时正在播放的音频。

在运行仿真器时,如何使布局与我的景观活动中设计的布局相同,同时能够使用configChanges以便对象的状态保持不变?

这是我的Manifest.xml文件中configChanges的代码:

<activity android:name=".MainActivity" 
android:configChanges="orientation|screenSize"/>
    <activity android:name=".Listen" 
android:configChanges="orientation|screenSize"/>
    <activity android:name=".See" 
android:configChanges="orientation|screenSize"/>
    <activity android:name=".Study" 
android:configChanges="orientation|screenSize" />

1 个答案:

答案 0 :(得分:0)

尽管互联网告诉了您,但您应该千万不要 *使用android:configChanges属性来抑制Android活动的正常生命周期。相反,您应该在系统正常运行时在系统内工作。

来自Google自己的documentation

  

注意:应避免使用此属性,并且只能将其用作最后的选择。请阅读Handling Runtime Changes,以获取有关如何正确处理由于配置更改而引起的重启的更多信息。


对于您而言,这意味着解决您提到的另一个问题:

  

如果我正在播放音频,它将继续播放,并且我将无法暂停刚开始播放时正在播放的音频

我建议您打开一个新问题,其中包含有关如何启动/停止正在播放的音频的详细信息以及有关“问题”的确切信息。我怀疑,解决此问题的正确方法是将音频处理移至retained fragment,但我现在只能做猜测。