4

我构建了我的Android应用程序,并且现在想为不同的方向添加布局。我创建了一个layout-land文件夹,并为我的第一个Starter Activity“myStartActivity”(与之前用于两个方向的布局名称相同)放置了不同的布局。Android:活动内的屏幕旋转不切换纵向/横向布局

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

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

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

回答

0

你可以做的是使用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); 
} 

还是坚持在一个case语句:)

3

在我来说,当我有机器人所描述的问题只发生:configChanges =“方向” 在清单中的活动。

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

0

如果您仅在仿真器上进行测试,则可能在检测方向更改时出现问题。至少我已经体验过。

相关问题