【问题标题】:Using android:configChanges="orientation|screenSize"/> And It is Messing Up My Landscape Layout on Orientation change使用 android:configChanges="orientation|screenSize"/> 并且在方向更改时弄乱了我的横向布局
【发布时间】:2018-12-13 00:02:39
【问题描述】:

当我放入时

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

并为我的每一项活动执行此操作,当我在模拟器中翻转方向时的布局与我在设计模式下的布局不匹配。

以前,当我没有 configChanges 时,它可以完美地工作,除非我正在播放音频,它会继续播放,而且我无法暂停我第一次启动它时正在播放的音频。

当我运行模拟器时,如何保持布局与我在横向活动中设计的位置相同,同时能够使用 configChanges 使对象的状态保持不变?

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

<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" />

【问题讨论】:

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


【解决方案1】:

不管互联网告诉你什么,你应该永远*使用android:configChanges属性来抑制Android活动的正常生命周期。相反,您应该在系统内正常工作。

来自谷歌自己的documentation

注意:应避免使用此属性,仅在不得已的情况下使用。请阅读Handling Runtime Changes,了解更多关于如何正确处理因配置更改而重新启动的信息。


在你的情况下,这意味着解决你提到的另一个问题:

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

我建议您打开一个新问题,详细说明如何开始/停止正在播放的音频,并提供有关“问题”究竟是什么的信息。我怀疑处理这个问题的正确方法是将音频处理移动到retained fragment,但我现在只能猜测。

【讨论】:

  • 谢谢。我对此很陌生,因此非常感谢任何帮助。我试图在旋转音频时将音频保持在相同的状态,并使布局与我创建的横向布局相匹配。我不知道该怎么做,我不知道如何做一个保留的片段,但也许我会更多地研究它。这是一个项目,我没有那么多时间去做,所以我可能不得不在不保存状态的情况下做它。还是谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多