Android:横向模式的备用布局xml

时间:2011-02-01 01:32:28

标签: android layout resources android-layout orientation

如何为横向设置一个布局,为纵向设置一个?当用户将手机侧向旋转时,我想假设额外的宽度并节省垂直空间。

6 个答案:

答案 0 :(得分:209)

默认情况下,/res/layout中的布局同时应用于纵向和横向。

如果你有例如

/res/layout/main.xml

您可以添加新文件夹/res/layout-land,将main.xml复制到其中并进行必要的调整。

orientation

另请参阅http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutshttp://www.devx.com/wireless/Article/40792/1954以获取更多选项。

答案 1 :(得分:67)

在当前版本的Android Studio(v1.0.2)中,您可以通过单击下面屏幕截图中显示的可视化编辑器中的按钮来添加横向布局。选择“创建景观变化”

Android Studio add landscape layout

答案 2 :(得分:42)

除非您另行指定,否则/ res / layout中的布局将应用于纵向和横向。假设我们的主页有/res/layout/home.xml,我们希望它在2种布局类型中看起来不同。

  1. 创建文件夹/ res / layout-land(这里将保留横​​向调整的布局)
  2. 复制home.xml
  3. 对其进行必要的更改
  4. Source

答案 3 :(得分:2)

您可以按照以下方式将特定布局分组到正确的文件夹结构中。

布局土地target_version

layout-land-19 //定位KitKat

同样可以创建布局。

希望这会对你有所帮助

答案 4 :(得分:0)

Android Studio 3.x.x的最快方法

1。转到活动布局的设计标签

2。在顶部,您应按预览方向按钮,其中有一个用于创建横向布局(检查图像)的选项,将创建一个新文件夹作为您的xml布局文件针对特定方向

enter image description here

答案 5 :(得分:0)

我会尽快解释。

首先,您可能会注意到,现在您应该按照Google的要求使用ConstraintLayout(请参阅androix库)。

在android studio projet中,您可以通过创建其他res / layout /目录来提供特定于屏幕的布局。一种用于需要不同布局的每种屏幕配置。

这意味着在两种情况下都必须使用目录限定符

  • Android设备支持
  • Android横向或纵向模式

因此,这是一个示例:

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

您还可以将限定符与使用dimens.xml的res资源文件一起使用。

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets

res / values / dimens.xml

<resources>
    <dimen name="grid_view_item_height">70dp</dimen>
</resources>

res / values-land / dimens.xml

<resources>
    <dimen name="grid_view_item_height">150dp</dimen>
</resources>

your_item_grid_or_list_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content

    <ImageView
            android:id="@+id/image"
            android:layout_width="0dp"
            android:layout_height="@dimen/grid_view_item_height"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:src="@drawable/ic_menu_slideshow">

</androidx.constraintlayout.widget.ConstraintLayout>

来源:https://developer.android.com/training/multiscreen/screensizes