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

案例代码

相关推荐
ideaout技术团队31 分钟前
android集成react native组件踩坑笔记(Activity局部展示RN的组件)
android·javascript·笔记·react native·react.js
shaominjin1231 小时前
单例模式:设计模式中的“独一无二“之道
android·单例模式·设计模式
千里马学框架2 小时前
windows系统上aosp15上winscope离线html如何使用?
android·windows·html·framework·安卓窗口系统·winscope
码住懒羊羊2 小时前
【C++】模板进阶 | 继承
android·java·c++
urkay-2 小时前
Android 线程详解
android·java·kotlin·iphone·androidx
aqi002 小时前
FFmpeg开发笔记(八十七)采用Kotlin的手机开源播放器VLC-Android
android·ffmpeg·音视频·流媒体
峥嵘life3 小时前
Android EDLA项目导入mainline包后蓝牙签名报错分析解决
android·gitee
灵猫小西3 小时前
Android耗时卡顿原因排查工具Profiler
android·profiler·耗时卡顿
gfdgd xi4 小时前
好消息:KMRE 安卓模拟器现可在Debian/GXDE使用
android·python·架构·bug·deepin·龙芯
La Pulga5 小时前
【STM32】FLASH闪存
android·c语言·javascript·stm32·单片机·嵌入式硬件·mcu