在将alignparentbottom设置为true时,android中的按钮的高度会增加

时间:2015-02-04 05:38:10

标签: android

我正在开展一个项目,其中有一个注册表单和一个位于表单底部的按钮。按钮的xml如下:

<Button
        android:id="@+id/btnnext1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/relativeLayout1"
        android:layout_centerHorizontal="true"
        android:background="@drawable/button_clicked_selector"
        android:text="NEXT"
        android:textColor="#FFFFFF" />

如果我设置android:layout_alignParentBottom="true",尽管设置高度为wrap_content,按钮的高度也会增加。如果我删除android:layout_alignParentBottom="true",按钮会缩小。如何使其正确高度和宽度为wrap_content的大小。

编辑:整个布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/frag1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/main_bg" >

    <TextView
        android:id="@+id/txtheading1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="PERSONAL DETAILS-I"
        android:textColor="#FFFFFF"
        android:textSize="25dp" />

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:id="@+id/relativeLayout1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp" >

        <EditText
            android:id="@+id/txtfullname"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:ems="10"
            android:hint="FULL NAME"
            android:singleLine="true" />

        <RelativeLayout
            android:id="@+id/lv_dob"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtfullname" >

            <EditText
                android:id="@+id/txtdob"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:editable="false"
                android:ems="10"
                android:hint="DATE OF BIRTH"
                android:inputType="none"
                android:singleLine="true" />

            <Button
                android:id="@+id/btndob"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/txtdob"
                android:layout_alignParentRight="true"
                android:layout_alignTop="@+id/txtdob"
                android:layout_toRightOf="@+id/txtdob"
                android:background="@drawable/button_clicked_selector"
                android:text="SELECT DATE"
                android:textColor="#FFFFFF" />
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/layout_gender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/lv_dob"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/txtgendertitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="GENDER:"
                android:textColor="#FFFFFF"
                android:textSize="20dp" />

            <RadioGroup
                android:id="@+id/radioGender"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:textColor="#FFFFFF" >

                <RadioButton
                    android:id="@+id/genderMale"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="Male"
                    android:textColor="#FFFFFF" />

                <RadioButton
                    android:id="@+id/genderFemale"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignRight="@+id/btndob"
                    android:text="Female"
                    android:textColor="#FFFFFF" />
            </RadioGroup>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/layout_marital"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/layout_gender"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/txtmaritaltitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="MARITAL\n STATUS:"
                android:textColor="#FFFFFF"
                android:textSize="20dp" />

            <RadioGroup
                android:id="@+id/radiomarital"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:textColor="#FFFFFF" >

                <RadioButton
                    android:id="@+id/marital_single"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="Single"
                    android:textColor="#FFFFFF" />

                <RadioButton
                    android:id="@+id/marital_married"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Married"
                    android:textColor="#FFFFFF" />
            </RadioGroup>
        </LinearLayout>

        <EditText
            android:id="@+id/txtusername1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/layout_marital"
            android:ems="10"
            android:hint="EMAIL ID"
            android:inputType="textEmailAddress"
            android:singleLine="true" />

        <EditText
            android:id="@+id/txtpassword1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtusername1"
            android:ems="10"
            android:hint="PASSWORD"
            android:inputType="textPassword"
            android:singleLine="true" />

        <EditText
            android:id="@+id/txtpassword2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/txtpassword1"
            android:ems="10"
            android:hint="CONFIRM PASSWORD"
            android:inputType="textPassword" />
    </RelativeLayout>

    <Button
        android:id="@+id/btnnext1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/relativeLayout1"
        android:layout_centerHorizontal="true"
        android:background="@drawable/button_clicked_selector"
        android:text="NEXT"
        android:textColor="#FFFFFF" />

</RelativeLayout>

编辑:背景文件

button_clicked_selector.xml

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/button_gradient" /> 
<item android:state_pressed="true" android:drawable="@drawable/button_clicked_gradient" /> 
</selector>

button_gradient.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
    <!--  Gradient Bg for listrow -->
   <gradient
      android:startColor="#00aff0"
      android:endColor="#0081b0"
      android:angle="270" />
</shape>

button_clicked_gradient.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
    <!--  Gradient Bg for listrow -->
   <gradient
      android:startColor="#00aff0"
      android:endColor="#00aff0"
      android:angle="270" />
</shape>

编辑:SCREENSHOT

enter image description here

2 个答案:

答案 0 :(得分:2)

只看到你的布局,Button属性有两件事:android:layout_alignParentBottom="true" and android:layout_below="@+id/relativeLayout1" 你的按钮的高度将从RelativeLayout的底部延伸到屏幕的底部,你无法正确控制它。

请删除layout_below,并将高度设置为固定大小,例如48DP,....将高度设置为固定大小的原因是因为您使用该按钮的背景(默认按钮背景是系统背景,包括已经高度的大小) )

答案 1 :(得分:1)

您将wrap_content设置为layout_width的{​​{1}}和layout_height,并且您的按钮背景也没有大小,因此您的按钮大小已确定通过其中的文字。如您所见,按钮几乎与其中的文本一样大。

因此,您可以在按钮上添加一些填充以使其更大。