我有一个处于纵向模式的应用,但有些屏幕应该为带有物理键盘的手机设置横向模式。
我正在使用tabhost,我注意到当我允许强制方向更改时,它会重新加载每个选项卡并且有点慢。
是否有办法允许强制方向更改(例如仅在弹出硬键盘时)并且仅将该视图重新加载为横向模式?我希望这样做而不会重新加载所有活动。我的tabhost当前将循环浏览方向更改的每个活动。我知道这与在方向改变时重新绘制“活着”活动有关,但是tabhost只是放大了重绘。
需要可选横向模式的活动也需要在tabview中运行。
洞察力赞赏
答案 0 :(得分:2)
您可以通过自行处理方向更改来防止活动被破坏。
编辑您的Manifest活动:
<activity android:name=".MyActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" />
然后在您的活动中覆盖:
@Override
public void onConfigurationChanged(Configuration newConfig) {
//ignore orientation change
super.onConfigurationChanged(newConfig);
}
但是你必须知道重新启动用于为每个方向加载特殊资源,如果你实际上没有处理更改,你可能会产生奇怪的效果。有重新加载的原因。