1

我希望我的 EditTexts 相互对齐,长度相同,并且向右对齐。我正在使用线性布局。现在它看起来像这样

这是我的 Android 布局 XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    android:orientation="vertical" android:configChanges = "orientation"
    android:screenOrientation = "portrait" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:maxLines="1"
            android:singleLine="true"
            android:text="Mail:"
            android:textAppearance="?android:attr/textAppearanceSmall" />



        <EditText
            android:id="@+id/tbopmail"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >


        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Fornavn:"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <EditText
            android:id="@+id/tbopfornavn"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="textPersonName" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Efternavn:"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <EditText
            android:id="@+id/tbopefternavn"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="textPersonName" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:singleLine="true"
            android:text="Adresse:"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <EditText
            android:id="@+id/tbopadr"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1" android:inputType="textPersonName"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Telefon:"
            android:textAppearance="?android:attr/textAppearanceSmall" />





        <EditText
            android:id="@+id/tboptlf"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="phone"
            android:maxLength="8" android:layout_weight="1"/>

    </LinearLayout>




        <LinearLayout
            android:id="@+id/linearLayout3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >


            <Button
                android:id="@+id/btopret"
                android:layout_width="170dp"
                android:layout_height="wrap_content"
                  android:layout_gravity="right"
                android:layout_marginTop="50dp"
                android:text="Opret mig som bruger!" android:layout_marginLeft="100dp" android:layout_marginRight="1dp"/>



    </LinearLayout>

</LinearLayout>
4

5 回答 5

1

您正在寻找的是android:layout_weight属性,它告诉 Activity 每个视图应占用的父级百分比。每个父视图在布置其子视图时都会考虑此属性,父布局的权重为“1”以分配给其每个视图。这对应于 100% 的视图。如果你给孩子们(你的 textviews 和 edittexts)android:layout_weight=".5",他们每个人都会扩大到占据父母空间的 50%。对于您的情况,您似乎希望文本视图的权重为 0.25,编辑文本的权重为 0.75。

此外,如果您不喜欢使用小数,您可以为父视图分配android:weightSum属性。您的新数字将对应于父视图的 100%,而不是 1。例如,如果您想要为视图拆分 25%-75%,则给每个父 LinearLayout 的 weightSum 为 4,TextView 的权重为 1, EditTexts 的权重为 3。

I just looked at your code before submitting and realized that you already use the layout_weight attribute. To get a little more in depth, when you give a single view in a parent a weight of 1, as you are, you're telling it to take up all available space after the other views have been laid out. So your textview is wrapping it's content and taking up a minimal amount of the parent, and the EditTexts get the rest. Basically, weight will not prevent a view from being laid out. If it requires more space in a parent than the weight is providing it, the remaining space is divided based on the weight of the other children.

于 2012-05-11T15:02:42.730 回答
0

我不尝试,但也许你可以使用表格布局来解决这个问题。 http://developer.android.com/resources/tutorials/views/hello-tablelayout.html 可以看看这个链接

于 2012-05-11T13:46:27.673 回答
0

你可以尝试使用RelativeLayout

http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

或以其他方式尝试具有相等列的 TableLayout

http://developer.android.com/resources/tutorials/views/hello-tablelayout.html

于 2012-05-11T13:47:29.407 回答
0

您可以在 LinearLayout 中使用 weightSum ...

于 2012-05-11T13:51:34.677 回答
0

只需将android:orientation="vertical"添加到您的 linearlayout1,2,3...

<LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
于 2012-05-11T14:46:32.003 回答