1

我有多个水平线性布局。在垂直列出的每个布局中,我都有一个 TextView,后跟一个 EditText。我只想为所有 EditText 视图提供一个恒定的左边距,以便它们对齐,我该如何实现呢?这是部分代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/pNameL"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="Segoe ui"
            android:text="Name"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/editText2"
            style="@style/editText_style"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >
        </EditText>

    </LinearLayout>
4

1 回答 1

2

在 res/values/style.xml 文件中创建样式。如果 style.xml 不存在,则创建一个新的。

<style name="editText_style">
    <item name="android:layout_marginLeft">30dp</item>
    <item name="android:layout_marginRight">30dp</item>
</style>

然后在<EditText>标签下的布局文件(要在其中更改边距)中,使用以下样式应用此样式:

style="@style/editText_style"


编辑:如果你的父母是水平方向的,你不能相对于你的父母应用边距。

尝试使用layout:weight属性。例如,如果您希望您的 EditText 从其父级的一半开始,并且您的父级中共有 2 个视图,包括 EditText,则将layout:weight两个视图设置为 0.5。这使两个视图在其父级中都具有相等的空间。

仅当LinearLayouts您要进行更改的所有 包含相等的 no 时,这才有效。的意见。如果对于不同的LinearLayout包含不同的没有。视图然后你不能使用样式或者没有办法从一个地方进行更改。

注意:使用layout:weight您无法获得静态保证金值的属性。它取决于您的父母尺寸,并且可能因不同的屏幕尺寸而异。

于 2013-06-15T17:06:55.717 回答