Android 根据显示方向更改XML填充属性
在我的XML布局中,我试图根据显示方向在线性布局上设置不同的填充点 上面的代码用于纵向模式,但在横向模式下,我希望,例如,Android 根据显示方向更改XML填充属性,android,xml,Android,Xml,在我的XML布局中,我试图根据显示方向在线性布局上设置不同的填充点 上面的代码用于纵向模式,但在横向模式下,我希望,例如,android:paddingTop=“20dp” 它可以从XML中实现,或者我需要在屏幕方向更改时以编程方式管理它 谢谢。使用xml进行此操作时,您有两种选择。为纵向/横向指定不同的布局文件,或使用单个布局文件并为纵向/横向定义不同的尺寸 不同的布局文件 只有在纵向/横向布局明显不同的情况下,才需要使用不同的布局。随着应用程序规模的增长,维护不同的布局会更加困难。在re
android:paddingTop=“20dp”
它可以从XML中实现,或者我需要在屏幕方向更改时以编程方式管理它
谢谢。使用xml进行此操作时,您有两种选择。为纵向/横向指定不同的布局文件,或使用单个布局文件并为纵向/横向定义不同的尺寸 不同的布局文件 只有在纵向/横向布局明显不同的情况下,才需要使用不同的布局。随着应用程序规模的增长,维护不同的布局会更加困难。在
res
文件夹中,您需要创建两个子文件夹:
res/layout-port
res/layout-land
然后在每个文件夹中创建一个同名文件。当设备处于纵向时,将使用布局端口中的文件
,而处于横向时,将使用布局区域中的文件
不同的Dimens文件
第二个选项是使用一个布局文件,但在其中定义动态标注。首先,您需要在res
文件夹中创建两个文件夹:
res/values-port
res/values-land
然后需要在每个文件夹中创建一个名为dimens.xml
的文件。在values端口
文件夹中,您可以将其设置为:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="main_screen_padding_top">60dp</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="main_screen_padding_top">20dp</dimen>
</resources>
然后,您可以在布局xml文件中引用该dimen值:
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:paddingStart="5dp"
android:paddingEnd="0dp"
android:paddingTop="@dimen/main_screen_padding_top"
android:orientation="vertical">
<TextView></TextView>
<TextView></TextView>
</LinearLayout>
它将根据设备的方向使用适当的尺寸
出于您的目的,我建议使用dimens方法,因为它通常更易于维护。这正是我想要的。非常感谢。
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:paddingStart="5dp"
android:paddingEnd="0dp"
android:paddingTop="@dimen/main_screen_padding_top"
android:orientation="vertical">
<TextView></TextView>
<TextView></TextView>
</LinearLayout>