1

我想根据Landscape modeand调整布局portrait mode

在我的 7' 平板设备中,portrait mode它太小而且Landscape mode很大。由于小型纵向模式,列表项和一些文本混合在一起,例如按钮大小减小,一个文本与另一个文本交叉,等等。

所以对于相同的视图布局,我想根据模式进行不同的设置。

例如,考虑这个 SO 帖子One Layout over the Top of Other。我想要这个场景用于portrait mode. 但是对于Landscape mode,我不希望一个视图重叠在另一个视图之上。相反,我希望在另一侧看到一个视图。

我用于不同模式的 xml 布局文件-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
              android:id="@+id/news_fragment"
              android:layout_weight="1"
              android:layout_width="0dp"              
              android:layout_height="match_parent" />

    <FrameLayout
              android:id="@+id/channel_fragment"
              android:layout_weight="2"
              android:layout_width="0dp"
              android:layout_height="match_parent" />

</LinearLayout>

问题是这似乎很好,landscape mode但是当涉及到纵向模式时,我需要news_fragment重叠channel_fragment

考虑到布局文件,如何实现这种行为是相同的。还是我也必须为肖像创建新的?

4

2 回答 2

2

您只需创建 2 个不同的布局文件。您应该阅读有关此主题的开发人员指南。

基本上你制作了 2 个 res/layout 文件夹: res/layoutres/layout-land

然后,您将横向布局添加到land文件夹,将纵向版本添加到另一个。

于 2013-06-13T07:35:04.697 回答
0

所以根据场景:

我保留了三个布局文件夹,即..

  • res/layout/activity_main(用于移动设备)
  • res/layout-large/activity_main(适用于纵向模式的平板设备)
  • res/layout-large-land/activity_main(适用于横向模式的平板设备)

所有三个布局文件都包含相应的显示需要的容器。

诀窍是:

由于activity_main 负责layout-large-land平板设备的横向方向,因此layout-large默认情况下activity_main 将用于纵向模式。

所以对于移动设备视图,对于不同方向的平板电脑——上述场景是最好的,而且效果很好!

于 2013-06-13T11:52:11.283 回答