当前位置 : 主页 > 手机开发 > android >

android – 处理方向更改的状态

来源:互联网 收集:自由互联 发布时间:2021-06-11
如何处理所有定向事件发生的状态? 就像是: 开始之前(保存一些屏幕状态) 发生时(动画目的) 发生后(加载屏幕状态) 我知道onConfigurationChanged可以处理方向更改.我试过这个: public voi
如何处理所有定向事件发生的状态?

就像是:

>开始之前(保存一些屏幕状态)
>发生时(动画目的)
>发生后(加载屏幕状态)

我知道onConfigurationChanged可以处理方向更改.我试过这个:

public void onConfigurationChanged(Configuration cfg) {
        saveState();

        super.onConfigurationChanged(cfg);

        loadState();
    }

在saveState上,我存储在SharedPreferences上的Gallery上查看的lastIndex.
在loadState上,我从SharedPreferences获取lastIndex并将其作为Gallery上的当前值.

我尝试将loadState放在onResume方法中,但在方向更改发生后不会调用它.

before starting (save some screen states)

使用onSaveInstanceState()和/或onRetainNonConfigurationInstance()和/或您调用setRetainInstance的片段(true)

when happening (animation purposes)

这是由OS处理的.

after it’s happen (load the screen state)

使用onRestoreInstanceState()和/或getLastNonConfigurationInstance()(如果你去了片段路由,你的数据自然就在那里)

I know that onConfigurationChanged can handle orientation changes.

@EightEight’s answer很好地涵盖了这一点.

网友评论