【发布时间】:2017-02-21 04:12:34
【问题描述】:
我有两个文件 activity_main.xml 和 activity_main.xml(land)。
如果我的手机处于纵向模式,我想要两个运行activity_main.xml。
如果我的手机处于横向模式,我想运行activity_main.xml(land)。
我该怎么办?
【问题讨论】:
标签: android xml android-layout layout orientation
我有两个文件 activity_main.xml 和 activity_main.xml(land)。
如果我的手机处于纵向模式,我想要两个运行activity_main.xml。
如果我的手机处于横向模式,我想运行activity_main.xml(land)。
我该怎么办?
【问题讨论】:
标签: android xml android-layout layout orientation
区别是activity_main.xml(land) 是横向模式。如果一切正常,请确保您的屏幕旋转已打开!
否则,如果您需要知道如何执行此操作,请创建一个新目录 layout-land,然后在 layout-land 中创建具有相同名称的 xml 文件,因为它是 layout 目录并在那里对齐您的横向内容模式。
请注意,xml 中的内容 id 相同。
或者你可以这样做,
现在工作完成了!
但是你有一个 Activity 和两个视图取决于方向。视图 A 可能在视图 B 中没有某些内容(如果您在两个 xml 中都有相同的视图集,那么您不需要它)。如果您没有相同的集合,则需要以正确的方式初始化您的视图!
当你初始化你的视图时,你可以这样做:
对于横向
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
//init views in landscape
}
纵向
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
//init views in portrait
}
【讨论】:
删除文件activity_main.xml(land)并将activity_main.xml引用到同一个java文件!
【讨论】:
Android SDK 提供了不同的方式来管理 android 应用程序的资源。 设备支持两种定位模式:
肖像
如果您只想为纵向模式添加任何特定布局,您应该将布局文件命名为“xyz-port.xml”。
风景
如果您只想为纵向模式添加任何特定布局,您应该将布局文件命名为“xyz-land.xml”。
Android 系统将决定运行时选择哪种布局。
对于您的以下查询,
我有两个文件 activity_main.xml 和 activity_main.xml(land)
如果你不指定任何like,activity_main.xml 那么,它将用于两者。
更多信息请查看here。 谢谢。
【讨论】:
【讨论】: