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

案例代码

相关推荐
2603_949462102 分钟前
Flutter for OpenHarmony社团管理App实战:意见反馈实现
android·flutter
错把套路当深情25 分钟前
android两种渠道支持一键打包 + 随意组合各种渠道
android
彬sir哥2 小时前
android studio如何把.gradle从C盘移到D盘
android·gradle·maven·android studio
、BeYourself3 小时前
TabLayout 与 ViewPager2 的基本使用
android·android-studio
南村群童欺我老无力.3 小时前
Flutter 框架跨平台鸿蒙开发 - 城市文创打卡:探索城市文化创意之旅
android·flutter·华为·harmonyos
Madison-No73 小时前
【Linux】文件操作&&重定向原理
android·linux·运维
2603_949462104 小时前
Flutter for OpenHarmony社团管理App实战:消息中心实现
android·javascript·flutter
andr_gale4 小时前
08_flutter中如何优雅的提前获取child的宽高
android·flutter
踏雪羽翼5 小时前
android 图表实现
android·折线图·弹窗·图表·自定义图标
有位神秘人6 小时前
Android中PopupWindow中如何弹出时让背景变暗
android