【问题标题】:Android layout <include>, does it support orientation layout xml files? Does -land work at all?Android布局<include>,是否支持方向布局xml文件? -land 是否有效?
【发布时间】:2013-06-26 15:19:57
【问题描述】:

这有点令人沮丧。我试图想出一种布局认可的方式,在纵向时沿顶部水平重新定位按钮工具栏,在横向时沿右侧垂直重新定位。例如我想要一排动作按钮根据方向让开。

首先,我不想在它的 layout-land 版本中复制所有 activity_main.xml 布局内容,所以我尝试使用该元素指向 toolbar.xml 布局和它的 layout-land 版本。

/res
  /layout
    /activity_main.xml
    /toolbar.xml
  /layout-land
    /toolbar.xml

activity_main.xml:

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rootview"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">
...
<include android:id="@+id/toolbar" layout="@layout/toolbar"/>
...

工具栏.xml:

    <ToggleButton
      android:id="@+id/serviceToggleButton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginRight="10dip"
      android:text="Port!" />
...

layout-land/toolbar.xml:

    <ToggleButton
      android:id="@+id/serviceToggleButton"
      android:layout_width="64dip"
      android:layout_height="64dip"
      android:layout_marginRight="10dip"
      android:text="Land!" />
...

不起作用。当平板电脑的方向改变时,我得到相同的按钮文本“端口!”和“陆地!”按钮文本永远不会出现。例如我更改了按钮文本,以防我的 LinearLayout 属性未按预期对齐。

所以!我尝试使用所有描述主要布局 xml 文件的陆地/端口示例,并使用 .我创建了 activity_main.xml 的布局副本,并调整了布局以使其在横向中出现。 (我也删除了)

/res
  /layout
    /activity_main.xml
  /layout-land
    /activity_main.xml

不起作用。我现在有一个干净的纵向和横向activity_main.xml,当我的方向改变时不会出现明显的差异。

什么给了?有人有什么建议吗?顺便说一句,在这种情况下,我坚持使用 Android 2.3.4。提前致谢!

【问题讨论】:

  • 你在 AndroidManifest.xml 文件中的 configChanges 标志吗?
  • 我的 AndroidManifest.xml 中有 MainActivity 的 android:configChanges="orientation|keyboardHidden">。应该没问题吧?
  • 不,不是。如果你想使用 layout-land 你必须删除那些标志

标签: android android-layout


【解决方案1】:

对于清单中的活动,请删除方向标志,...然后您的活动将在旋转时销毁并重新创建自己,从而为您提供正确包含的布局。

android:configChanges="keyboardHidden"

如果你把它留在里面,你可以用代码来处理方向变化。

【讨论】:

  • 谢谢!在我引用的 4 个教程和文档中,没有一个提到方向覆盖/实现。我会把这个留在我的记忆库中。
  • 我想做与您最初追求的相同的事情(在纵向和横向实现之间进行单个元素切换)。我对此的理解是正确的吗?那是永远行不通的?
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 2012-08-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2016-09-11
  • 2011-07-21
  • 1970-01-01
相关资源
最近更新 更多