【问题标题】:Difference between activity_main.xml and activity_main.xml(land)? How to change them at run time?activity_main.xml 和 activity_main.xml(land) 之间的区别?如何在运行时更改它们?
【发布时间】:2017-02-21 04:12:34
【问题描述】:

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

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

如果我的手机处于横向模式,我想运行activity_main.xml(land)。

我该怎么办?

【问题讨论】:

标签: android xml android-layout layout orientation


【解决方案1】:

区别是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
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      肖像

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

      风景

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

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

      对于您的以下查询,

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

      如果你不指定任何like,activity_main.xml 那么,它将用于两者。

      更多信息请查看here。 谢谢。

      【讨论】:

        【解决方案4】:

        请查看以下链接,希望您能得到解决方案。

        google developer

        link 2

        【讨论】:

          猜你喜欢
          • 2014-02-26
          • 1970-01-01
          • 2014-05-02
          • 2017-06-12
          • 2023-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多