Android配置横屏资源与Activity生命周期

Android配置横屏资源与Activity生命周期

  屏幕旋转会改变设备配置(device configguration)。设备设置的特征有:屏幕方向、屏幕像素密度、屏幕尺寸、键盘类型、底座模式以及语言等。

    当屏幕发现旋转时(设备配置更改),Android会销毁当前Activity,为新配置寻找最佳资源。


  Step1.创建水平模式布局

  右键res目录→New→Android resource directory

  

  单击>>后选择Landscape(横屏)选项

  

  点OK后发现res/layout-land目录下没有布局资源

  注意:

  切换至project视图创建即可,效果如下图

  


  虽然切换资源是个不错的主意,但是屏幕旋转会导致activity销毁与新建,即数据丢失。

  同时,Android有一个解决此类问题的好办法。

  onSaveInstanceState方法,该方法会将数据以Map形式存储

   

 1 public class MainActivity extends AppCompatActivity {
 2     private static final String KEY_INDEX="index";
 3     int mCurrentIndex;
 4     @Override
 5     protected void onCreate(Bundle savedInstanceState) {
 6         super.onCreate(savedInstanceState);
 7         setContentView(R.layout.activity_main);
 8         if(savedInstanceState!=null)
 9             mCurrentIndex=savedInstanceState.getInt(KEY_INDEX,0);
10     }
11 
12     @Override
13     protected void onSaveInstanceState(Bundle outState) {
14         super.onSaveInstanceState(outState);
15         outState.putInt(KEY_INDEX,mCurrentIndex);
16     }
17 }

 新增一个常量mCurrentIndex,在onCreate()方法中赋值给它

posted @ 2017-10-19 21:21 朝阳的自留地 阅读( ...) 评论( ...) 编辑 收藏

猜你喜欢

转载自blog.csdn.net/e5yrt2/article/details/86170694