5

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

android:configChanges="orientation|keyboardHidden"

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

4

3 回答 3

9

在 API 级别 12 之上,我们还需要添加 screenSize 以防止与方向一起刷新。

android:configChanges="orientation|keyboardHidden|screenSize"
于 2013-07-22T14:26:32.310 回答
1

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

如果您使用的是CompoundButton(like CheckBox) 按钮,它将自动为您保留其状态。

于 2013-06-09T15:35:23.160 回答
1

正如Gorski所说,onSaveInstanceState & onViewStateRestored (for Fragment) 是存储 Fragment 或 Activity 状态的方式

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);
    }
于 2021-02-04T09:31:55.240 回答