1

我正在创建一个反馈表,最后有两个按钮,“清除”和“发送”。这必须在相对布局中完成。

问题是按钮不够宽,我希望按钮与它们上方的宽度相匹配。

这是尝试更改宽度之前的应用程序:

在此处输入图像描述

和代码:

    <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>
4

2 回答 2

1

试试这个用下面的代码替换你的 xml 代码。

在这里,我添加android:layout_above="@+id/linearlayout_id"了两个按钮,RatingBar并将您的按钮放入其中LinearLayoutandroid: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>

这应该工作

于 2013-09-22T10:53:29.267 回答
0

您尝试将它们放入 aLinearLayout是正确的。只需添加android:layout_alignParentBottom="true"LinearLayout,它应该适合你。

更新:另外,更改android:layout_height="fill_parent"android:layout_height="wrap_content".LinearLayout

于 2013-09-22T10:44:05.457 回答