Android布局<include>,它是否支持方向布局xml文件? -land是否有效?</include>

时间:2013-06-26 15:19:58

标签: android android-layout

这有点令人沮丧。我试图提出一种布局批准的方式,在纵向时沿水平方向重新定位按钮工具栏,在横向时沿垂直方向重新定向。例如我想要一排动作按钮,以取决于方向。

首先,我不想在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"/>
...

toolbar.xml:     

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

布局脊/ toolbar.xml:     

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

不起作用。当平板电脑的方向发生变化时,我会得到相同的按钮文字“Port!”和“Land!”按钮文字永远不会出现例如我更改了按钮文本,以防万一我的LinearLayout属性没有像我预期的那样对齐。

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

android:configChanges="keyboardHidden"

如果您将其保留,您可以使用代码处理方向更改。