Android——横屏竖屏

系统配置变更的处理机制

为了避免横竖屏切换时重新加载界面的情况,Android设计了一中配置变更机制,在指定的环境配置发生变更之时,无需重启活动页面,只需执行特定的变更行为。该机制的视线过程分为两步:

  • 修改 AndroidManifest.xml,给 activity 节点增加 android.configChanges 属性
  • 修改活动页面的Java代码,重写活动的 onConfigurationChanged 方法,补充对应的代码处理逻辑。
java 复制代码
    // 在配置项变更时触发。比如屏幕方向发生变更等
    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        switch (newConfig.orientation) {
            case Configuration.ORIENTATION_PORTRAIT:
                tv_monitor.setText("当前屏幕方向为:竖屏");
                break;
            case Configuration.ORIENTATION_LANDSCAPE:
                tv_monitor.setText("当前屏幕方向为:横屏");
                break;
            default:
                break;
        }
    }
xml 复制代码
        <activity
            android:name=".ChangeDirectionActivity"
            android:configChanges="orientation|screenLayout|screenSize"
            android:exported="true">
  • 配置变更的豁免情况
    当是这些值发生变化的时候,Activity不会重新再创建

锁定屏幕方向

  • screenOrientation

landscape :横屏
portrait:竖屏

xml 复制代码
       <activity
            android:name=".ChangeDirectionActivity"
            android:configChanges="orientation|screenLayout|screenSize"
            android:screenOrientation="landscape"
            android:exported="true">

案例代码

相关推荐
洞窝技术37 分钟前
从0到30+:智能家居配网协议融合的实战与思考
android
QING6181 小时前
SupervisorJob子协程异常处理机制 —— 新手指南
android·kotlin·android jetpack
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于安卓的停车位管理系统与设计为例,包含答辩的问题和答案
android
PWRJOY2 小时前
解决Flutter构建安卓项目卡在Flutter: Running Gradle task ‘assembleDebug‘...:替换国内 Maven 镜像
android·flutter·maven
王家视频教程图书馆3 小时前
android java 开发网路请求库那个好用请列一个排行榜
android·java·开发语言
花卷HJ3 小时前
Android 文件工具类 FileUtils(超全封装版)
android·java
Fate_I_C3 小时前
Kotlin 中的 suspend(挂起函数)
android·开发语言·kotlin
花卷HJ4 小时前
Android 下载管理器封装实战:支持队列下载、取消、进度回调与自动保存相册
android·java
凡小烦4 小时前
看完你就是古希腊掌管Compose输入框的神!!!
android·kotlin
苏金标4 小时前
android切换语言
android