这有点令人沮丧。我试图提出一种布局批准的方式,在纵向时沿水平方向重新定位按钮工具栏,在横向时沿垂直方向重新定向。例如我想要一排动作按钮,以取决于方向。
首先,我不想在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。提前谢谢!
答案 0 :(得分:1)
清单中的活动删除方向标志,...然后您的活动将在旋转时销毁并重新创建,为您提供正确包含的布局。
android:configChanges="keyboardHidden"
如果您将其保留,您可以使用代码处理方向更改。