繁体   English   中英

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

[英]Android: Screen Rotation within Activity doesnt switch portrait/landscape layout

我构建了我的Android应用程序,并希望现在为不同的方向添加布局。 我创建了一个layout-land文件夹,并为我的第一个Starter Activity“myStartActivity”(与之前用于两个方向的布局同名)放置了不同的布局。

取决于我的屏幕方向在我启动应用程序之前,选择正确的布局:“myLayout.xml”来自“layout”文件夹,当我以纵向开始时,“myLayout.xml”来自“layout-land” - 我在风景中开始的文件夹。

问题是,当我在活动中旋转设备时,旋转后我没有得到新的布局。 例如:从纵向旋转到横向,它仍然在“布局”文件夹中显示“myLayout.xml”,而不是“layout-land”文件夹。

我没有覆盖任何OnConfigurationChange方法或任何东西。 我在“myStartActivity”中所做的只是实例化一些按钮并给它们一些听众。 我想在横向中使用不同的布局来改变按钮的顺序。

在我的情况下,只有当我在清单中的活动中有android:configChanges =“orientation”时才会出现所描述的问题。

否则,旋转时会自动使用正确的布局。

你可以做的是使用Activity.getResources()。getConfiguration()。orientation

然后根据方向结果,在oncreate()方法中设置内容视图,该方法在旋转时调用。

protected void onCreate(Bundle savedInstanceState) {
int result = this.getResources().getConfiguration().orientation;
if (result == 1){
//set content view to portrait
setContentView(R.layout.portrait);
}
else{
//set content view to landscape} 
setContentView(R.layout.landscape);
}

或坚持案例陈述:)

如果仅在模拟器上进行测试,则可能存在检测方向更改的问题。 我至少经历过这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM