【发布时间】:2011-06-18 23:39:00
【问题描述】:
我怎样才能有一种横向布局和一种纵向布局?当用户将手机侧向旋转时,我想假设额外的宽度并节省垂直空间。
【问题讨论】:
标签: android layout resources android-layout orientation
我怎样才能有一种横向布局和一种纵向布局?当用户将手机侧向旋转时,我想假设额外的宽度并节省垂直空间。
【问题讨论】:
标签: android layout resources android-layout orientation
默认情况下,/res/layout 中的布局适用于纵向和横向。
如果你有例如
/res/layout/main.xml
您可以添加一个新文件夹/res/layout-land,将main.xml 复制到其中并进行必要的调整。
有关更多选项,另请参阅 http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts 和 http://www.devx.com/wireless/Article/40792/1954。
【讨论】:
portrait这个词是什么
在当前版本的 Android Studio (v1.0.2) 中,您可以通过单击下面屏幕截图中显示的可视化编辑器中的按钮来简单地添加横向布局。选择“创建景观变化”
【讨论】:
layout-land 文件夹中放置一个新副本。知道如何从那里调用布局吗?无法使用R.layout.layout_name。我正在尝试在配置更改时手动配置我自己的布局,谢谢。
除非您另外指定,否则 /res/layout 中的布局适用于纵向和横向。假设我们的主页有 /res/layout/home.xml,我们希望它在 2 种布局类型中看起来不同。
【讨论】:
我会尽快解释。
首先,您可能会注意到现在您应该按照 google 的要求使用 ConstraintLayout(请参阅 android 库)。
在您的 android studio 项目中,您可以通过创建额外的 res/layout/ 目录来提供特定于屏幕的布局。每个屏幕配置需要不同的布局。
这意味着您必须在两种情况下都使用 目录限定符:
因此,这里有一个例子:
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
【讨论】:
您可以将您的特定布局分组到正确的文件夹结构下,如下所示。
layout-land-target_version
即
layout-land-19 // 目标 KitKat
同样,您可以创建布局。
【讨论】:
-19 后缀的好处?这有什么帮助吗?