繁体   English   中英

防止在方向更改android片段时刷新活动

[英]Prevent refreshing of activity on orientation change android fragment

我正在开发一个 android 应用程序,在那里我替换点击的片段。 我对横向和纵向模式有不同的设计。 但问题是,当我改变方向时,活动刷新并且按钮保持未点击状态,我尝试给

android:configChanges="orientation|keyboardHidden"

但没有用,另外将其设置为屏幕大小并没有采用其他布局设计,请建议如何克服这个问题,即不刷新有关方向更改的活动但仍接受其他布局。

在 API 级别 12 以上,我们还需要添加 screenSize 以防止随着方向刷新。

android:configChanges="orientation|keyboardHidden|screenSize"

使用onSaveInstanceState存储按钮的状态或任何其他状态,并使用提供的BundleonCreate恢复它。

如果您使用的是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM