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">

案例代码

相关推荐
5***g29814 分钟前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
牛奔21 分钟前
php 8.2 配置安装php-zbarcode扩展
android·开发语言·php
hudawei99642 分钟前
kotlin协程编译成Android字节码后是什么样的
android·开发语言·kotlin
2501_915106321 小时前
iOS 抓不到包怎么办?从 HTTPS 代理排查到 TCP 数据流捕获的全链路解决方案
android·tcp/ip·ios·小程序·https·uni-app·iphone
游戏开发爱好者81 小时前
APP上架苹果应用商店经验教训与注意事项
android·ios·小程序·https·uni-app·iphone·webview
s***35301 小时前
【MySQL】MySQL用户管理
android·mysql·adb
QING6181 小时前
kotlin 协程: GlobalScope 和 Application Scope 选择和使用 —— 新手指南
android·kotlin·android jetpack
霸王大陆1 小时前
《零基础学 PHP:从入门到实战》教程-模块四:数组与函数-2
android·开发语言·php
v***43171 小时前
springboot3整合knife4j详细版,包会!(不带swagger2玩)
android·前端·后端
h***04772 小时前
MySQL 的 INSERT(插入数据)详解
android·数据库·mysql