这是我目前的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.但这里它不起作用我做错了什么? :/
答案 0 :(得分:1)
问题是您已为android:layout_alignParentTop="true"
设置ListView
,这使得它始终从顶部开始,这会导致隐藏您的退出按钮。
您应该进行两项更改,以便获得所需。
从android:layout_alignParentTop="true"
移除ListView
并将其添加到退出ImageButton
。
将android:layout_below="@+id/buttonLogOut"
添加到ListView
。
从退出按钮中删除android:layout_below="@+id/list_of_messages"
。