我正在创建一个反馈表单,最后有两个按钮,“清除”和“发送”。这必须在相对布局中完成。
问题是按钮不够宽,我希望按钮与它们上方的宽度相匹配。
在尝试更改宽度之前,这是应用程序:
代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/feedback_name_hint" >
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:hint="@string/feedback_email_hint" >
</EditText>
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/ratingBar1"
android:layout_alignLeft="@+id/editText2"
android:layout_alignRight="@+id/editText2"
android:layout_below="@+id/editText2"
android:gravity="center_vertical|top"
android:hint="@string/feedback_actual"
android:inputType="textMultiLine" >
</EditText>
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/Button01"
android:layout_alignLeft="@+id/editText3"
android:layout_marginBottom="21dp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ratingBar1"
android:layout_alignParentBottom="true"
android:layout_marginBottom="18dp"
android:text="@string/Clear" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="@string/Send" />
</RelativeLayout>
我尝试在按钮周围创建线性布局,如下所示:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top"
android:orientation="horizontal" >
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Clear"
/>
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Send"
/>
</LinearLayout>
但是,虽然按钮是我想要的尺寸,但它们会跳到视图的顶部,并影响其他元素:
非常感谢任何对此的帮助,谢谢。
解决:
它通过使用以下线性布局的按钮进行工作:(注意评级栏如何设置为高于linearlayoutid
)
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/linearlayout_id"
android:layout_alignLeft="@+id/editText3"
android:layout_marginBottom="21dp" />
<LinearLayout
android:id="@+id/linearlayout_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:gravity="center_horizontal"
android:layout_marginBottom="18dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Clear" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/Send" />
</LinearLayout>
答案 0 :(得分:1)
试试这个 用以下内容替换xml代码。
我已将android:layout_above="@+id/linearlayout_id"
添加到RatingBar
,并通过向两个按钮提供LinearLayout
将您的按钮添加到android:layout_weight="1"
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/linearlayout_id"
android:layout_alignLeft="@+id/editText3"
android:layout_marginBottom="21dp" />
<LinearLayout
android:id="@+id/linearlayout_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:gravity="center_horizontal"
android:layout_marginBottom="18dp"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@String/Clear" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@String/Send" />
</LinearLayout>
这应该可行
答案 1 :(得分:0)
您尝试将它们放入LinearLayout
是正确的。只需将android:layout_alignParentBottom="true"
添加到LinearLayout
即可,它应该适合您。
更新:
另外,请将android:layout_height="fill_parent"
中的android:layout_height="wrap_content"
更改为LinearLayout
。