【问题标题】:Android Tabhost, switching orientation reload is slowAndroid Tabhost,切换方向重新加载很慢
【发布时间】:2011-07-01 23:17:37
【问题描述】:

我有一个处于纵向模式的应用,但对于带有物理键盘的手机,某些屏幕应该具有横向模式。

我正在使用 tabhost,我注意到当我允许强制更改方向时,它会重新加载每个选项卡并且有点慢。

有没有办法允许强制更改方向(例如仅在弹出硬键盘时)并且仅重新加载该视图以使其处于横向模式?我想在没有重新加载所有活动的情况下做到这一点。我的 tabhost 目前将循环浏览有关方向更改的每个活动。我知道这与在方向更改时重绘“活动”活动有关,但 tabhost 只是放大了重绘。

需要可选横向模式的活动也需要在 tabview 中运行。

洞察力赞赏

【问题讨论】:

    标签: android keyboard landscape android-tabhost tabview


    【解决方案1】:

    您可以通过自己处理方向更改来防止 Activity 被破坏。

    编辑清单中的活动:

    <activity  android:name=".MyActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" /> 
    

    然后在您的活动中覆盖:

           @Override 
           public void onConfigurationChanged(Configuration newConfig) { 
             //ignore orientation change 
             super.onConfigurationChanged(newConfig); 
           }
    

    但是您必须知道,重新启动用于为每个方向加载特殊资源,如果您实际上不处理更改,您可能会产生奇怪的效果。重新加载是有原因的。

    【讨论】:

    • 你能详细说明一下吗?为什么MyActivity前面有一个点,为什么我要忽略super.onConfigurationChanged(newConfig);的方向变化?照原样,这似乎对我不起作用。我只希望选项卡组中的特定活动能够重新加载而无需重新加载整个选项卡
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    相关资源
    最近更新 更多