Android布局:为什么我的按钮总是在ListView下面?

时间:2017-06-11 18:24:59

标签: android layout

这是我目前的LayOut代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:padding="16dp"
    android:background="@drawable/background"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageButton
        android:layout_above="@+id/list_of_messages"
        android:background="@android:color/transparent"
        android:id="@+id/buttonLogOut"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/button_log_out"
        android:paddingLeft="60dp" />
  <ImageButton
        android:background="@android:color/transparent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:src="@drawable/button_Send"
        android:id="@+id/fab"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />
    <EditText
        android:layout_toLeftOf="@+id/fab"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Your message"
        android:id="@+id/input" />
    <ListView
        android:background="@android:color/white"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/fab"
        android:divider="@android:color/transparent"
        android:dividerHeight="16dp"
        android:id="@+id/list_of_messages"
        android:layout_marginBottom="16dp" />
</RelativeLayout>

这就是它的样子:Screenshot

LogOut按钮始终位于白色部分下方。 (我只是用白色背景来看看,ListView覆盖了多少)。

所以 - 它始终涵盖顶部的一切。然而,带有发送按钮的“上方”部分和布局底部的edittext工作。

我需要将按钮放在白色中间部分的顶部。为什么它不起作用?我通常会切换到线性布局,但在这个特定的例子中我不能这样做。在林布局中,我只需要加权10/80 / 10.但这里它不起作用我做错了什么? :/

1 个答案:

答案 0 :(得分:1)

问题是您已为android:layout_alignParentTop="true"设置ListView,这使得它始终从顶部开始,这会导致隐藏您的退出按钮。

您应该进行两项更改,以便获得所需。

  1. android:layout_alignParentTop="true"移除ListView并将其添加到退出ImageButton

  2. android:layout_below="@+id/buttonLogOut"添加到ListView

  3. 从退出按钮中删除android:layout_below="@+id/list_of_messages"