任何人都可以向我解释android:configChanges="orientation|keyboardHidden
的含义吗?我有一本书解释如下:
第16行确保
时不会出现屏幕方向•硬件键盘在设备上滑动或关闭
•启用或禁用软件键盘。
但我仍然没有得到它,目前尚不清楚。任何人都能更好地解释一下吗?
答案 0 :(得分:2)
但我仍然没有得到它,目前尚不清楚。
这是因为引用的解释糟糕。你需要一本更好的书。 : - )
当设备状态发生变化,可能会导致您需要不同的资源时,Android会有"配置更改"的概念。方向改变(即,将屏幕从纵向旋转到横向,反之亦然)是最常见的配置更改。但是,还有其他一些,例如语言/语言环境的变化,停靠状态等。配置更改的默认行为是Android销毁并重新创建活动及其内容,强制您重新加载资源,以便获得正确的内容,例如新轮换到横向设备的横向布局。虽然这可能看起来是一个激烈的步骤,但一旦你习惯了它,它的效果会相当好。
会有一些活动导致此行为损害用户。一个例子是相机应用程序,其中销毁和重新创建活动可能导致立即再次进行预览的问题。对于这些情况,Android提供android:configChanges
:告诉Android 不销毁并重新创建某些配置更改活动的方法。 android:configChanges="orientation|keyboardHidden"
表示有两种特定类型
配置更改,Android不应该销毁和重新创建活动,而应该只是在活动上调用onConfigurationChanged()
。
android:configChanges
。部分原因是因为您通常需要列出所有可能的配置更改,否则您仍需要处理您遗漏的更改的destroy-and-recreate周期。部分原因是因为可能的配置名称会自行更改,您可能会错过这些更改,从而打破较新的Android设备。部分原因是因为您在onConfigurationChanged()
中必须根据发生的任何配置更改来修复所有内容,您将忘记内容。
答案 1 :(得分:2)
当Android设备更改其配置(如方向)时,其屏幕将重新绘制。
如果我们定义android:configChanges="orientation|keyboardHidden
,则意味着我们告诉设备在以下情况下不重绘屏幕:
1. orientation is changed or. 2. keyboard visibiity is changed.
答案 2 :(得分:0)
防止活动被破坏并再次创建,如上面的答案。 但只有在方向或键盘状态发生变化时才会这样做