在Android中使EditText和Button具有相同的高度

时间:2010-08-18 20:33:52

标签: android button android-edittext android-layout

我的EditText中有ButtonLinearLayout,我想将它们紧密地对齐,以便它们看起来似乎属于一起(edittext + micButton用于语音输入)。

现在它们没有相同的高度,并且它们并没有真正对齐(Button似乎比EditText略低。我知道我可以应用像-5dp这样的负余量来让它们更接近,但是有没有更好的方法呢?

将它们设置在特定的容器/布局中,以便它们自动具有相同的高度,并且它们之间没有边距?

5 个答案:

答案 0 :(得分:1)

嗯,不知道为什么人们为桌子打扰太多。由于两个视图都在LinearLayout(可能的方向=水平)内,因此该命令应该在布局中居中:

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

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical" />

    </LinearLayout>

注意:由于EditTexts和Buttons的文本方向略有不同,您可能需要进行一些调整(通过更改边距或填充)以使文本正确对齐。

答案 1 :(得分:1)

我希望这个解决方案对你的场景有所帮助......这是代码..          

    <RelativeLayout
        android:id="@+id/rlLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:padding="3dp" >

    <EditText
        android:id="@+id/etId"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:background="#c8c8c8"
        android:hint="Edittext"
        android:paddingLeft="20dip"
        android:paddingRight="10dip"
        android:textColor="#000000" />

    <RelativeLayout
        android:id="@+id/rlLayoutid"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignRight="@+id/etId" >

        <Button
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_alignParentRight="true"
            android:layout_marginRight="14dp"
            android:layout_marginTop="10dp"
            android:background="@drawable/calender" />
    </RelativeLayout>
</RelativeLayout>

答案 2 :(得分:0)

使用相对布局,您可以根据其他视图大小拉伸视图,而无需知道其他视图的确切大小。 这是代码:

<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
<Button 
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:text="button"
    android:id="@+id/but"/>
<EditText 
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/but"
    android:layout_alignBottom="@id/but"
    android:layout_alignTop="@id/but"
    />
</RelativeLayout>

检查此链接以减少视图之间的空间: https://groups.google.com/forum/?fromgroups#!topic/android-developers/RNfAxbqbTIk

答案 3 :(得分:0)

@ Daniel Here您可以使用布局权重和权重总和

a

答案 4 :(得分:-1)

Android尝试自动调整文本的所有内容,而不是按钮本身。

永远地想我,最终弄清楚了。它真的很简单。应该解决它。

myButton.setGravity(Gravity.CENTER_VERTICAL);

或者如果它们在一行中..将按钮附加到表格行,然后。

myTableRow.setGravity(Gravity.CENTER_VERTICAL);