2

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

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

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

活动主.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!" />
...

布局土地/工具栏.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。提前致谢!

4

1 回答 1

1

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

android:configChanges="keyboardHidden"

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

于 2013-06-26T16:11:05.650 回答