![](/img/trans.png)
[英]Android Activity/Fragment duplicates on orientation change (Kotlin)
[英]Prevent refreshing of activity on orientation change android fragment
我正在开发一个 android 应用程序,在那里我替换点击的片段。 我对横向和纵向模式有不同的设计。 但问题是,当我改变方向时,活动刷新并且按钮保持未点击状态,我尝试给
android:configChanges="orientation|keyboardHidden"
但没有用,另外将其设置为屏幕大小并没有采用其他布局设计,请建议如何克服这个问题,即不刷新有关方向更改的活动但仍接受其他布局。
在 API 级别 12 以上,我们还需要添加 screenSize 以防止随着方向刷新。
android:configChanges="orientation|keyboardHidden|screenSize"
使用onSaveInstanceState
存储按钮的状态或任何其他状态,并使用提供的Bundle
在onCreate
恢复它。
如果您使用的是CompoundButton
的按钮(如CheckBox
),其状态将自动为您保留。
正如戈尔斯基所说, onSaveInstanceState & onViewStateRestored (对于片段)是存储片段或活动状态的方式
onSaveInstanceState : 在片段暂停或停止时调用
onViewStateRestored : 片段返回时调用
前任:
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
outState.putParcelableArrayList(Keys.CURRENT_OPERATIONS.name(), operations);
firstCall = true;
super.onSaveInstanceState(outState);
}
@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
if (firstCall)
operations = savedInstanceState.getParcelableArrayList(Keys.CURRENT_OPERATIONS.name());
super.onViewStateRestored(savedInstanceState);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.