起因:
在垂直方向启动应用程序时候,横竖屏切换正常,但是在横屏启动程序时,Layout载入正常,但是绘图部分不正常,即横屏显示的是竖屏的布局,切换后竖屏是横屏的布局。
解决:
应该是在程序加载布局时,先获取手机当前的状态,如果是横屏,则去加载横屏布局,否则加载竖屏,而不是获取manifast.xml中设置的状态来判断加载那种布局。manifast中是主动去设置activity的横竖屏状态,是不依赖手机横竖状态的,如果xml设置了竖屏,那就算横屏启动程序,也是一样竖屏显示的。
因此应该先注册一个Intent: Intent.ACTION_CONFIGURATION_CHANGED 在receiver中getConfiguration().orientation来判断当前手机状态,然后去更新你的变量isPortrait
| |
Activity里面有onConfigurationChanged这个函数,你首先在manifest里面注册横竖屏事件类似于这个: android:configChanges="keyboard|keyboardHidden|orientation" 这个的意思是键盘出现和隐藏,横屏的时候都会触发onConfigurationChanged里面的事件。 你可以在onConfigurationChanged里面加绘图大小的代码。
public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); }
|