我已经看到了能够为一个活动指定两个单独的布局 xml 文件的引用,一个用于纵向,一个用于横向。不过,我还没有找到任何关于如何做到这一点的信息。如何为每个活动指定哪个 xml 文件是纵向布局,哪个是横向布局?
是否也可以为不同的屏幕尺寸指定不同的布局?如果是这样,这是如何完成的?
我已经看到了能够为一个活动指定两个单独的布局 xml 文件的引用,一个用于纵向,一个用于横向。不过,我还没有找到任何关于如何做到这一点的信息。如何为每个活动指定哪个 xml 文件是纵向布局,哪个是横向布局?
是否也可以为不同的屏幕尺寸指定不同的布局?如果是这样,这是如何完成的?
创建一个layout-land
目录并将布局 XML 文件的横向版本放在该目录中。
您只需根据方向和分辨率将其放在具有不同名称的单独文件夹下,设备将自动为其屏幕设置选择正确的文件夹
更多信息在这里:
http://developer.android.com/guide/practices/screens_support.html
在“屏幕大小和密度的资源目录限定符”下
只是提醒:
如果您定义了它,请orientation
从android:configChanges
清单文件中的活动属性中删除:xml
android:configChanges="orientation|screenLayout|screenSize"
创建一个新目录layout-land
,然后在与目录相同的名称中创建文件xml
, 并将您的内容与横向模式对齐。layout-land
layout
请注意,两者中的内容 idxml
相同。
下面的最后一行是应用两个量词的示例:横向和最小宽度(600dp) 屏幕。用你需要的更新 600dp。
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
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-sw600dp-land/dimens.xml # For 7” tablets in landscape
一个有用的设备指标:https ://material.io/tools/devices/
或者使用这个:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Add your UI elements inside the inner most linear layout -->
</LinearLayout>
</ScrollView>