首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android:Activity中的屏幕旋转不会切换纵向/横向布局

在Android开发中,Activity中的屏幕旋转不会切换纵向/横向布局的原因可能是在AndroidManifest.xml文件中的Activity标签中没有添加configChanges属性,或者在Activity的代码中没有重写onConfigurationChanged方法。

首先,在AndroidManifest.xml文件中的Activity标签中添加configChanges属性,如下所示:

代码语言:xml<activity android:name=".MainActivity"
复制
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout">
</activity>

这里的configChanges属性表示当键盘隐藏、屏幕方向、屏幕尺寸和屏幕布局发生变化时,不会重新创建Activity,而是调用onConfigurationChanged方法。

接下来,在Activity的代码中重写onConfigurationChanged方法,如下所示:

代码语言:java
复制
@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    // 判断屏幕方向是否发生变化
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // 横向布局
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // 纵向布局
    }
}

onConfigurationChanged方法中,可以根据屏幕方向的变化来动态更新布局。

最后,建议使用Android Studio开发工具,因为它提供了很多自动化的功能,可以帮助开发者更快地开发应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(八十一)屏幕规格适配

适配各种屏幕规格,首先要取到系统对于屏幕的配置信息,这些配置可从工具类Configuration获得。Configuration对象在Activity中通过调用getResources().getConfiguration()得到,该对象的常用属性说明如下: touchscreen : 屏幕触摸方式。有下列几种取值定义:"未定义", "不支持触摸", "专用笔触摸", "支持手指触摸" keyboard : 物理键盘样式。有下列几种取值定义:"未定义", "无物理键盘", "全键盘", "十二格键盘" keyboardHidden : 键盘状态。有下列几种取值定义:"未定义", "未隐藏或软键盘", "已隐藏", "软键盘" hardKeyboardHidden : 物理键盘状态。有下列几种取值定义:"未定义", "未隐藏", "已隐藏" navigation : 方向控制样式。有下列几种取值定义:"未定义", "无方向控制", "方向键", "轨迹球", "滚轮" navigationHidden : 方向控制状态。有下列几种取值定义:"未定义", "未隐藏", "已隐藏" orientation : 屏幕方向。有下列几种取值定义:"未定义", "竖屏", "横屏" 以上属性除了屏幕方向是有用的,其他的基本没什么用。 如果属性发生变化,可重写onConfigurationChanged函数监测最新的属性值。但是由屏幕旋转导致的屏幕方向变化,按照生命周期走的是原方向onDestroy然后新方向onCreate,并不触发onConfigurationChanged方法,所以该方法基本也没机会用到。

03
领券