如何在Linearlayout上将Textview,Edittext和按钮高度设置为相同

时间:2016-04-06 14:38:04

标签: android xml layout android-linearlayout

如何将LinearLayout项目的高度设置为相同。我试过RelativeLayout,但可以取得任何成功。知道怎么做吗? Tyvm提供任何帮助

<LinearLayout
    android:background="@color/red"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:weightSum="11">

    <TextView
        android:id="@+id/lblParca"

        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="5.5"
        android:text="Parça Kodu"
        android:textSize="15dp" />

    <EditText
        android:id="@+id/txthldMalzemeKodu"
        style="@style/DefaultEditTextSmall"
        android:layout_width="0dip"
        android:layout_weight="4.5"
        android:layout_height="wrap_content"
        android:inputType="textCapCharacters"
        android:singleLine="true" />

    <ImageButton
        android:id="@+id/btnhldgetMalzeme"
        style="@style/btnStyleBreakerBay"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@mipmap/ic_ara" />
</LinearLayout>

这就是我得到的:

enter image description here

5 个答案:

答案 0 :(得分:1)

您可以尝试对所有视图使用android:layout_weight="1",并设置android:layout_height="0"

关于文档的

Link

答案 1 :(得分:1)

尝试使用此xml file

<?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="wrap_content"
    android:layout_marginTop="5dp"
    android:background="@color/red"
    android:orientation="horizontal"
    android:weightSum="11">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.40"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/lblParca"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Parça Kodu"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.40"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/txthldMalzemeKodu"
                style="@style/DefaultEditTextSmall"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:inputType="textCapCharacters"
                android:singleLine="true"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="0.20"
            android:orientation="horizontal">

            <ImageButton
                android:id="@+id/btnhldgetMalzeme"
                style="@style/btnStyleBreakerBay"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@mipmap/ic_ara"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

答案 2 :(得分:0)

您需要为所有视图设置相同的高度。 要么你这样做:

android:layout_height="match_parent"

 android:layout_height="some value"

答案 3 :(得分:0)

一种方法是对父级的LinearLayout高度进行硬编码。

其他方式是为每个项目采取3个线性布局&amp;在每个LinearLayout

  android:layout_gravity="center_vertical"

答案 4 :(得分:0)

如果您对Aspicas的回答感到满意,可以将布局简化为

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:background="@color/red"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/lblParca"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.40"
        android:text="Parça Kodu" />

    <EditText
        android:id="@+id/txthldMalzemeKodu"
        style="@style/DefaultEditTextSmall"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.40"
        android:inputType="textCapCharacters"
        android:singleLine="true"/>

    <ImageButton
        android:id="@+id/btnhldgetMalzeme"
        style="@style/btnStyleBreakerBay"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.20"
        android:scaleType="centerInside"
        android:src="@mipmap/ic_ara"/>
</LinearLayout>

没有必要拥有所有包装器。另请注意使用gravity而非layout_gravity对TextView进行更改以使内容居中。我真的很惊讶这个作品,从我的理解,这应该是拉伸观点的高度,显然我在那个想法中错了。