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

案例代码

相关推荐
李艺为1 分钟前
android客制开发之DevCheck检测CPU核心作假
android
hnlgzb2 分钟前
LiveData和MutableLiveData都是什么?有什么区别?都是在什么情况下用?
android
Calebbbbb4 分钟前
使用 Android Emulator 针对 AOSP 单测编译运行并检查覆盖率的完整实践
android·linux·安卓
浮尘笔记32 分钟前
从零开始:Android环境搭建与WebView套壳应用
android·前端·android studio·安卓
hnlgzb1 小时前
安卓app中viewmodel的常用的用法有哪些?
android
恋猫de小郭1 小时前
Android Studio Panda 3 发布,CMP 导致的 Gemini 输入问题
android·ide·flutter·ios·android studio
zh_xuan1 小时前
Android compose 可见性动画未执行问题修复
android·compose
取码网3 小时前
2025最新口红机防篡改版本源码
android·java·javascript
2501_915918413 小时前
iOS 混淆流程 提升 IPA 分析难度 实现 IPA 深度加固
android·ios·小程序·https·uni-app·iphone·webview
4311媒体网3 小时前
织梦CMS二开实战:打造智能化的审核定时发布功能
android