• 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()方法中赋值给它

  • 相关阅读:
    mac重启nginx时报nginx.pid不存在的解决办法
    js 正则表达式
    js 闭包
    js yarn
    js npm
    vue3 vite
    node 错误处理
    node fs
    linux包管理工具使用和区别(转)
    MySQL数据库学习----理论基础
  • 原文地址:https://www.cnblogs.com/xpang0/p/7695251.html
Copyright © 2020-2023  润新知