2

我正在为平板电脑和移动设备创建演示应用程序。
现在有一个活动有两个tabs,所以里面有标签ListView
我的问题是我想ListView从左右两边显示出一些边距。因此,随着方向的变化,边距值也会发生变化,
我已经根据以下是列表视图的代码片段从开发人员端阅读了文档。文件夹
res/layout-xlarge-land

<ListView
    android:id="@+id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="250dp"
    android:layout_marginRight="250dp" >
</ListView>


res/layout-xlarge-port文件夹 内

  <ListView
    android:id="@+id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="100dp"
    android:layout_marginRight="100dp" >
</ListView>


现在的问题是,当我改变平板电脑的方向时,它只需要纵向模式 xml 文件,而不需要横向 xml 文件。那么如何解决这个问题。
也包含在清单文件中
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />
<supports-screens android:anyDensity="true" android:resizeable="true"/>
并包含在活动中
android:configChanges="orientation|screenSize"

4

2 回答 2

2

尝试

layout-sw600dp-land 用于 7" 平板电脑的横向模式

layout-sw600dp-port 用于 7" 平板电脑中的纵向模式

layout-sw720dp-land 用于 10" 平板电脑的横向模式

layout-sw720dp-port 用于 10" 平板电脑的纵向模式

于 2013-04-23T13:04:33.160 回答
0

您需要android:configChanges="orientation|screenSize"从清单中删除该行。这会阻止活动被销毁和重新创建。

没有它,操作系统将自动销毁活动并使用新方向的布局重新创建它。

如果您不想自动销毁它,您可以捕获该onConfigurationChanged()事件并在那里再次手动设置布局。

于 2013-04-23T13:10:14.210 回答