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


Answers:


217

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

如果你有例如

/res/layout/main.xml

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

方向

另请参阅http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutshttp://www.devx.com/wireless/Article/40792/1954


1
我是否应该保留名称layout-land或任何其他单词@marapet
Vamsi Pavan Mahesh

9
不能使用任何其他词
美孚

我的背景图片在横向上伸展。我有布局图和可绘制图..它仍然伸展..我尝试使用相同的图像,9幅图像,mdpi,hdpi等。所有问题仍然存在:(
Prabs 2015年

是什么意思portrait
dsdsdsdsd

@dsdsdsdsd根据Android Studio的说法是布局端口
Gregzenegair

76

在当前版本的Android Studio(v1.0.2)中,您只需单击可视化编辑器中的按钮即可添加横向布局,如下面的屏幕快照所示。选择“创建景观变化”

Android Studio添加横向布局


除了它将新副本放入您的layout-land文件夹中。知道如何从那里调用布局吗?无法使用R.layout.layout_name。我想在配置更改时手动配置自己的布局,谢谢。
Azurespot 2015年

2
@NoniA。它应该检测电话何时切换到横向,并自动从版图区域呼叫一个。
2015年

43

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

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

资源


那“肖像”呢?
dsdsdsdsd 2016年

使用新的<sw>限定符怎么办?
Ruchir Baronia

6

Android Studio 3.xx和Android Studio 4.xx的最快方法

1.转到活动布局的设计选项卡

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

在此处输入图片说明


2

您可以按照以下正确的文件夹结构对特定的布局进行分组。

layout-land-target_version

layout-land-19 //目标KitKat

同样,您可以创建自己的布局。

希望这个能对您有所帮助


感谢您的回答,但由于这个问题已经得到解答,因此我看不到您的回答有什么帮助。也许您可以解释-19后缀的好处?这样有帮助吗?
布莱恩·菲尔德

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.