activity_main.xml和activity_main.xml(land)之间的区别?如何在运行时更改它们?

时间:2017-02-21 04:12:34

标签: android xml android-layout layout orientation

我有两个文件activity_main.xmlactivity_main.xml(土地)。

如果我的手机处于纵向模式,我想要两次运行activity_main.xml

如果我的手机处于风景模式,我想运行activity_main.xml(陆地)。

我该怎么办?

3 个答案:

答案 0 :(得分:2)

差异是activity_main.xml(land)适用于横向模式。如果一切都在那里,请确保您的屏幕旋转已开启!

否则,如果您需要知道如何执行此操作,请创建一个新目录layout-land,然后在xml中创建layout-land layout文件xml目录并将您的内容与横向模式对齐。

请注意,if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){ //init views in landscape } 中的内容ID都相同。

或者你可以这样做,

enter image description here

enter image description here

现在工作完成了!

enter image description here

但是您有一个Activity,两个视图取决于方向。视图A可能没有东西在视图B中(如果在两个xmls中都有相同的视图集,那么您不需要这样)。如果您没有相同的设置,则需要以正确的方式初始化视图!

初始化视图时,您可以通过以下方式执行此操作:

适用于Lanscape

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
 //init views in portrait
}

For Portrait

apiUrl

答案 1 :(得分:0)

删除文件activity_main.xml(land)并将activity_main.xml引用到同一个java文件中!

答案 2 :(得分:0)

Android SDK提供了不同的方法来管理Android应用程序的资源。 设备支持两种定位模式:

<强>肖像

如果只想为纵向模式添加任何特定布局,则应将布局文件命名为“xyz-port.xml”。

<强>风景

如果您只想为纵向模式添加任何特定布局,您应该将布局文件命名为'xyz-land.xml'。

Android系统将决定运行时选择哪种布局。

如下面的查询,

  

我有两个文件activity_main.xml和activity_main.xml(land)

如果你没有指定任何类似的,activity_main.xml那么,它将用于两者。

有关详情,请查看here。 感谢。