我正在开展一个项目,其中有一个注册表单和一个位于表单底部的按钮。按钮的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
答案 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
,并且您的按钮背景也没有大小,因此您的按钮大小已确定通过其中的文字。如您所见,按钮几乎与其中的文本一样大。
因此,您可以在按钮上添加一些填充以使其更大。