1

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

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

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

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

洞察力赞赏

4

1 回答 1

2

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

编辑清单中的活动:

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

然后在您的活动中覆盖:

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

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

于 2011-07-01T23:55:22.563 回答