App未识别layout-land文件夹,横屏不加载对应布局问题咨询
检查Activity的Manifest配置
先看Manifest里对应Activity的标签,有没有设置android:screenOrientation="portrait"这类固定方向的属性?如果有,改成sensor或者直接删掉该属性,让系统自动处理方向切换。另外,如果加了android:configChanges="orientation",要么移除这个配置,要么在onConfigurationChanged方法里手动调用setContentView重新加载布局——因为添加该属性后,系统不会自动替换布局,需要手动处理。
示例正确配置:<activity android:name=".YourMainActivity" android:exported="true"> <!-- 不要添加固定方向的screenOrientation属性 --> </activity>确认layout-land的结构和文件名
必须保证layout-land和默认layout文件夹同属res目录下,且里面的布局文件名和layout里的完全一致。比如默认layout里是activity_main.xml,layout-land里也得是同名文件,系统才会自动匹配替换。别把文件夹命名成layout-land-hdpi这类带额外限定符的,除非你是专门针对特定分辨率的横屏布局。排查代码中是否强制固定布局
检查Activity的onCreate或其他生命周期方法,有没有硬写setContentView(R.layout.activity_main_portrait)这种固定加载竖屏布局的代码?有的话改成通用的布局文件名,让系统根据方向自动选择。验证预览和系统设置
在Android Studio的Design预览里切换到横屏,看看能不能显示layout-land的布局。如果预览正常,那检查手机有没有手动锁定屏幕方向,或者开发者选项里的相关设置是否限制了方向切换。检查限定符冲突
如果项目里有带语言、分辨率等其他限定符的布局文件夹(比如layout-zh),要确保layout-land的优先级正确,或者创建对应的layout-land-zh文件夹适配,避免限定符冲突导致系统找不到横屏布局。
内容的提问来源于stack exchange,提问作者Pico

