可能的重复:
Activity 在轮换 Android 上重新启动
我有一个 LinearLayout,我想android:orientation="vertical"在纵向模式和android:orientation="horizontal"横向模式下都使用它。Activity 执行一些复杂的操作,因此允许 Activity 在方向更改时关闭并重新启动本身不是一种选择,因此排除使用 layout-land 功能或任何其他涉及重新启动 Activity 的方法。我目前正在以编程方式设置正确android:orientation的活动onStart和onConfigurationChanged.
不幸的是,当你旋转屏幕时,只有大约 20% 的时间它实际上改变了布局。我一直无法理解一种模式 - 它似乎有时会这样做,而有时则不会。我尝试.invalidate()在执行更改后调用LinearLayout,但这似乎不起作用。如何强制视图以新方向重绘,或者有更好的方法来实现这一点?
基本上,这里有问题的代码有时有效,但不是其他:
@Override
public void onConfigurationChanged(Configuration newConfig) {
((LinearLayout)contentView.findViewById(R.id.someLinearLayout))
.setOrientation(newConfig.orientation==Configuration.ORIENTATION_PORTRAIT ?
LinearLayout.VERTICAL
: LinearLayout.HORIZONTAL);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |