纵向模式和横向模式视图显示手机尺寸的调整

时间:2013-06-13 07:27:41

标签: android layout landscape-portrait

我想根据Landscape modeportrait mode调整布局。

在我的7'平板电脑设备中portrait mode太小而Landscape mode非常大。由于小肖像模式,列表项和一些文本混合像按钮 大小减少,一个文本越过另一个,等等。

因此,对于相同的视图布局,我希望根据模式进行不同的设置。

例如,考虑One Layout over the Top of Other的这篇SO帖子。我希望这个场景适用于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

考虑到布局文件是如何实现此行为的。或者我是否也必须为肖像创建一个新的?

2 个答案:

答案 0 :(得分:2)

您只需创建2个不同的布局文件。您应该阅读有关此主题的developer guides

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

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

答案 1 :(得分:0)

所以根据情景:

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

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

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

诀窍是:

由于layout-large-land的activity_main负责平板电脑设备的横向定位,因此layout-large的activity_main默认为 肖像模式。

因此,对于移动设备视图,对于不同方向的平板电脑 - 上述情况最佳 并且工作得很好!