与Android横竖屏相关的因素两个:configChanges 和 screenOrientation。

首先看看 configChanges 属性值:

   (1)orientation:消除横竖屏的影响   (2)keyboardHidden:消除键盘的影响   (3)screenSize:消除屏幕大小的影响

在什么都不处理的情况下,我们手机横竖屏切换时,Activity会重启,如果不想Activity受影响,我们只要设置Activity android:configChanges属性为orientation|screenSize或者orientation|screenSize|keyboardHidden 即可。

接下来看看 screenOrientation ,这个属性是控制Activity启动时候的方向,属性值有:

  (1)landscape---控制Acitvity为横屏显示。  (2)portrait---控制Activity为竖屏显示  (3)unspecified--系统默认显示  (4)user---用户当前的首选方向  (5)behind---与当前堆栈下面的Activity同向  (6)sensor---根据传感器定(常用)  (7)nosensor---忽略传感器;系统根据unspecified显示

熟悉上面两种属性之后,我的需求是:打开APP,不希望用户随意旋转手机导致手机屏幕乱转动,希望在特定界面才设置可横竖屏切换并且不影响 Activity 生命周期。

操作:
(1)在 AndroidManifest 的 Activity 配置 中设置:

   android:configChanges="orientation|screenSize|keyboardHidden"     android:screenOrientation="portrait"

(2)在适当的时候,用代码动态设置屏幕根据传感器转动,也算解锁在AndroidManifest 设置的android:screenOrientation="portrait" :

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

更多相关文章

  1. Android在代码中设置控件的drawableLeft等
  2. DrawerLayout中侧边栏NavigationView沉浸式状态栏无效问题
  3. 定時線程(Timer)操作UI界面
  4. Android自定义VIEW取得XML的自定义值
  5. Android(安卓)MTP模式切换分析
  6. TabLayout的使用及使用中的问题总结
  7. Android(安卓)状态栏的设置
  8. Android之工具通用的Adapter
  9. Android(安卓)开发知识点总结

随机推荐

  1. Android(安卓)换行
  2. Android使用Fragment嵌套Fragment的方式
  3. Android常用工具之对字符串String进行MD5
  4. Android6.0 按键流程(三)InputDispatcher分
  5. Android错误提示:IMGSRV::0: gralloc_modu
  6. Android飞行模式的打开与关闭
  7. 国内四个不错的技术团体博客
  8. Windows下快速搭建安卓开发环境Android(
  9. android/bitmap.h 详解
  10. 开发技术前线 第十一期