Android:如何将EditText和Button设置为相同的高度?

时间:2015-06-17 07:06:13

标签: android android-layout android-edittext android-button

我想让EditText和OK按钮的高度相同,但总是让EditText比Button更短。

enter image description here

我用Google搜索并尝试以下方式但没有成功,没有任何改变:

  1. 将EditText和Button设置为像素
  2. 中的相同高度
  3. 将EditText和Button包装到RelativeLayout中。设置RelativeLayout的高度,并将EditText和Button都设置为fillparent in height
  4. 在Button
  5. 上设置alignTop和alignBottom

    主题是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen

    有人可以帮我吗?谢谢!

    这是xml:

    <RelativeLayout android:id="@+id/login_layout_ipAddr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="#CEE6F0"
            android:visibility="invisible">
    
            <RelativeLayout android:id="@+id/login_layout_inner_ipAddr"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
    
                <EditText android:id="@+id/login_text_ipAddr"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:inputType="text"
                    android:textSize="5pt"
                    android:hint="@string/login_text_ipAddr" />
    
                <Button android:id="@+id/login_btn_ipAddr"
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:background="#00ABDF"
                    android:textColor="#FFFFFF"
                    android:text="@string/login_btn_ipAddr"
                    android:onClick="updateIPaddr"/>
    
            </RelativeLayout>
    
    
        </RelativeLayout>
    

8 个答案:

答案 0 :(得分:0)

我已更正您的代码,请尝试使用此代码...

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/login_layout_ipAddr"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="#CEE6F0"
android:visibility="invisible">

<LinearLayout
    android:id="@+id/login_layout_inner_ipAddr"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:orientation="horizontal"
    android:weightSum="2">

    <EditText
        android:id="@+id/login_text_ipAddr"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1.8"
        android:inputType="text"
        android:textSize="5pt"/>

    <Button
        android:id="@+id/login_btn_ipAddr"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.2"
        android:background="#00ABDF"
        android:textColor="#FFFFFF"/>
</LinearLayout>

答案 1 :(得分:0)

你可以将编辑文本和按钮放在TableRow中并用重量控制它们的空间,这样可以简化这个过程

答案 2 :(得分:0)

尝试在 LinearLayout

上使用 RelativeLayout

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_centerInParent="true">

        <LinearLayout
            android:id="@+id/login_layout_inner_ipAddr"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#CEE6F0"
            android:weightSum="6" >

            <EditText
                android:id="@+id/login_text_ipAddr"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="5"
                android:hint="@string/login_text_ipAddr"
                android:inputType="text"
                android:textSize="5pt" />

            <Button
                android:id="@+id/login_btn_ipAddr"
                android:layout_width="0dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:background="#00ABDF"
                android:onClick="updateIPaddr"
                android:text="@string/login_btn_ipAddr"
                android:textColor="#FFFFFF" />
        </LinearLayout>
   </LinearLayout>

答案 3 :(得分:0)

将填充设置为按钮。

<Button android:id="@+id/login_btn_ipAddr"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:background="#00ABDF"
            android:textColor="#FFFFFF"
            android:text="@string/login_btn_ipAddr"
            android:onClick="updateIPaddr"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"/>

答案 4 :(得分:0)

最后,我通过将"android:background="#FFFFFF""添加到EditText元素来解决了这个问题。但我不知道这种行为的原因是什么。如果有人能够对此有所了解,我真的很感激。

没有背景:

enter image description here

有背景:

enter image description here

答案 5 :(得分:0)

使用以下代码:

<RelativeLayout android:id="@+id/login_layout_ipAddr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="#CEE6F0"
        android:visibility="invisible">
        <RelativeLayout android:id="@+id/login_layout_inner_ipAddr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <EditText android:id="@+id/login_text_ipAddr"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:inputType="text"
                android:textSize="5pt"
                android:drawableRight="@drawable/your_Button_image"
                android:hint="@string/login_text_ipAddr" />
        </RelativeLayout>
    </RelativeLayout>

答案 6 :(得分:0)

EditText的默认背景具有短填充。按钮也有这些填充!如果要精确对齐,可以将自定义可绘制背景设置为每个背景。最简单的方法是为背景设置纯色。

答案 7 :(得分:-1)

要创建一个固定高度和宽度的按钮,您可以在px或dp中给出值。

在dp中给出值更方便,因为android会自动缩放ldpi,mdpi和hdpi设备中的高度和宽度。

<Button
 android:layout_width="100dp"
 android:layout_height="50dp"     
 android:text="Click" />