在布局文件中,我有一个Listview,其大小可以动态增长/缩小。我有一个按钮btn_rec_add,它的点击事件我在ListView中添加了一个项目。我在布局文件中尝试了很多更改,但是无法根据ListView中的项目数使按钮移动其位置。如果我将按钮保持在具有ListView的相同RelativeLayout中,则按钮会动态移动,这正是我想要的但是在4.3英寸显示电话中添加5个或更多元素后我看不到按钮。如果我将按钮保持在ListView的RelativeLayout之外,那么它将固定在屏幕上。
目前,btn_rec_add固定在布局的底部。有人可以帮我解决这个问题。
以下是XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg" >
<ImageView
android:id="@id/top_bar_view"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@drawable/top_bar"
android:contentDescription="@string/content" />
<TextView
android:id="@+id/txt_recipients"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:padding="8dp"
android:text="@string/text_recipients"
android:textColor="#FFFFFF"
android:textSize="16sp" />
<ImageButton
android:id="@id/btn_back"
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/content"
android:paddingTop="6dp"
android:src="@drawable/ic_back" />
<RelativeLayout
android:id="@+id/Rlayout_recipients"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/btn_rec_add"
android:layout_alignParentLeft="true"
android:layout_below="@id/top_bar_view" >
<ListView
android:id="@+id/rec_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"
android:paddingTop="20dp" />
</RelativeLayout>
<ImageButton
android:id="@+id/btn_rec_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:contentDescription="@string/content"
android:src="@drawable/icon_add" />
</RelativeLayout>
答案 0 :(得分:0)
如果我理解正确,您希望按钮的行为如下:
ListView
未延伸到填充屏幕,则显示在最后ListView
项目下方ListView
延伸到屏幕的整个高度,则按钮应位于屏幕的底部,但列表应保持可滚动状态如果我的理解是正确的,您应该将ListView
和按钮放在LinearLayout
中,如下所示:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<Button
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@drawable/button_image" />
</LinearLayout>
以上布局的效果如下:
ListView
和Button
ListView
将占用按钮未占用的布局中的所有空间(这是layout_weight="1"
,而Button
没有布局权重,因此它只会填充尽可能多的空间因为它需要@dimen/button_height
)很棒的Android布局问题!
答案 1 :(得分:-1)
您的问题与用户体验有关。 您必须决定用户是否要滚动到列表的末尾以按添加按钮 或用户想要添加而不滚动到列表的末尾。 由于您的方案只有两个选项, 要么保持添加按钮固定,要么将其添加为列表视图的页脚。