在方向更改期间,android会重复使用视图吗? 我的活动中有一个进度条。我将进度设置为50%,然后进行方向更改。但由于某种原因,进度条在定位后保持50%。我在我的活动的onCreate()中调用了setprogress(0)。我把'printf'放在我调用setProgress()的任何地方,我还不明白为什么每次我改变方向时进度条保持50%?
感谢您的帮助。
答案 0 :(得分:1)
您的活动被拆除并重新创建,但具有ID设置的视图会保存其实例状态,以便在重新创建后将其传递给将来的自我。这在onRestoreInstanceState
中恢复。由于在onRestoreInstanceState
之后调用了onCreate
,因此您在onCreate
中设置的值会被之前保存的数据覆盖。
如果您想在此步骤发生后操纵您的观看,onPostCreate
可能就是您要找的。 p>
如果您想详细了解此过程的工作原理(可能在您自己的自定义视图中实现此保存/恢复行为),请参阅View#onSaveInstanceState
和View#onRestoreInstanceState
答案 1 :(得分:0)
看起来您正在对onCreate
文件中包含orientation/keyboardHidden
的配置的配置更改施加manifest
方法。从清单XML中删除活动中的android:configChanges
,然后从您的活动中移除public void onConfigurationChanged(Configuration newConfig)
方法。
或者,只需在onConfigurationChanged
方法
如果要实现onConfigurationChanged
方法,请确保在清单XML文件中为所需活动定义它。
例如:
<activity
android:name="MyActivity"
android:configChanges="orientation|keyboardHidden" />
然后在方向或键盘隐藏配置发生时调用 onConfigurationChanged