对齐TextView旁边的EditTexts

时间:2012-05-11 13:41:40

标签: android alignment android-linearlayout android-edittext

我希望我的EditTexts在彼此之上对齐,同样长,并且与右边对齐。 我正在使用线性布局。 现在it looks like this

这是我的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>

5 个答案:

答案 0 :(得分:1)

您正在寻找的是android:layout_weight属性,该属性告诉活动每个视图应占用的父级百分比。每个父视图在放置子项时都会考虑此属性,父布局的权重为“1”以分配给每个视图。这相当于视图的100%。如果您给孩子(您的textview和edittexts)android:layout_weight=".5",他们将扩展占据父母空间的50%。对于您的情况,您似乎可能需要像文本视图的重量为.25和编辑文本的.75的重量。

此外,如果您不喜欢使用小数,则可以为父视图指定android:weightSum属性。您的新号码将对应于父视图的100%,而不是1.例如,如果您希望视图分割为25%-75%,请为每个父级LinearLayout指定weightSum为4,TextViews的权重为1,而EditTexts的权重为3。

我在提交之前只是查看了您的代码,并意识到您已经使用了layout_weight属性。为了更深入一些,当您在父级中为单个视图提供权重为1时,您将告诉它在其他视图布局后占用所有可用空间。所以你的textview正在包装它的内容并占用最少量的父级,而EditTexts则完成其余的工作。基本上,重量不会妨碍视图布局。如果它在父母身上需要的空间比体重提供的空间多,那么剩下的空间将根据其他孩子的体重进行划分。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

答案 3 :(得分:0)

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

答案 4 :(得分: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" >