【问题标题】:Restore Contextual Action Mode after rotation旋转后恢复上下文动作模式
【发布时间】:2015-02-26 10:30:37
【问题描述】:

我的 Activity 有一个带有 ActionBar 的 listView。长按列表项时,会触发上下文动作模式。但是,在屏幕旋转过程中会丢失动作模式。

我知道我可以通过在 onsaveInstanceState/restoreInstancestate 方法中重新触发 Action 模式来恢复状态。但是我想知道Action模式中是否有任何内置方法可以恢复其状态?

谢谢!

【问题讨论】:

    标签: android android-actionbar android-actionmode


    【解决方案1】:

    AndroidManifest.xml 中声明android:configChanges 将指示活动管理器不要为这些配置更改重新创建您的活动(默认行为),在这种情况下您的操作栏状态将被重置。

    android:configChanges="orientation|screenSize"
    

    默认情况下,此声明会将下一个生命周期回调路由到onConfigurationChanged(),然后是onResume()

    如果您的应用程序在特定配置更改期间不需要更新资源,并且您有性能限制要求您避免重新启动活动,那么您可以声明您的活动自己处理配置更改,这会阻止系统从重新开始您的活动。

    来源:http://developer.android.com/guide/topics/resources/runtime-changes.html

    【讨论】:

    • 这不应该是公认的答案。例如,如果用户更改了手机的语言,那么活动仍然可以重新启动,并且必须自己实现 onConfigurationChanged()。正确答案是,没有正确的内置方法可以重新创建没有副作用的上下文操作栏模式(例如 android:configChanges)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多