alignParentBottom使父高度与父高度匹配

时间:2015-03-02 19:37:09

标签: android xml

这是问题父项及其来自我的xml文件的内容:

<RelativeLayout
    android:id="@+id/group_chat_form"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginTop="5dp"
    android:background="@drawable/transparent_background2" >

         <TextView 
        android:id="@+id/send_msg_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:background="@drawable/transparent_background2"
        android:text="Send" />

  </RelativeLayout>

父母显然没有包装内容。

enter image description here

如果我从孩子那里删除alignParentBottom="true"属性,它看起来很完美 但是我需要这个特殊的孩子保持锚定在底部,因为我在同一个父母中有一个多行的edittext视图(我没有包括它,因为这个问题仍然发生在多行edittext注释掉)。随着edittext扩展以及来自用户的更多输入,“发送”按钮应保持锚定到父级的底部。这是它应该是什么样的(不包括多行EditText):

enter image description here

1 个答案:

答案 0 :(得分:2)

这是相对布局的限制。请参阅此处的验证答案 link

我正在做同样的目标并想出了这个解决方案:

<RelativeLayout
    android:id="@id/comment_input_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/light_gray"
    android:padding="4dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:gravity="bottom"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <EditText
            android:id="@id/comment_input_edit_text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="@string/label_add_a_comment"
            android:inputType="textCapSentences|textMultiLine"
            android:maxLines="6"
            android:scrollbars="vertical" />

        <Button
            android:id="@id/send_comment_button"
            style="@style/Widget.AppCompat.Button.Colored"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/label_send" />

    </LinearLayout>

    <ProgressBar
        android:id="@id/progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:visibility="gone" />

</RelativeLayout>

只要其他兄弟没有体重,android:layout_weight="1"会导致editText占用可用空间。

希望这有帮助。