考虑下一段xml -
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout 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"
tools:context="com.android.fiby.fragments.MenuFragment"
android:orientation="vertical"
android:layout_weight="0.7">
<com.android.fiby.TitleFont
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="#5e240a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="40dp"
android:text="בדיקה"
android:id="@+id/list_title"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_gravity="bottom"
android:gravity="center"
android:layout_weight="0.05">
<ImageView
android:id="@+id/buy_now"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button"/>
</LinearLayout>
</LinearLayout>
问题是当我从列表视图中删除元素时,按钮也会上升。我想要的是,无论ListView中有多少项,按钮总是在底部。
修改
我尝试过以下方式使用相对布局 -
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.android.fiby.TitleFont
android:textColor="#5e240a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="40dp"
android:text="בדיקה"
android:id="@+id/list_title"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
<ListView
android:layout_below="@+id/list_title"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<ImageView
android:layout_below="@android:id/list"
android:id="@+id/buy_now"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button"
android:layout_gravity="center"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
但问题是listview会覆盖按钮 -
我不想改变列表的高度,因为禁用图像可见性的其他活动会使用它。
答案 0 :(得分:0)
您应该尝试使用RelativeLayout并使用此行
android:layout_alignParentBottom="true"
这会将项目停靠在底部
答案 1 :(得分:0)
您可以使用RelativeLayout而不是LinearLayout,并将此按钮始终设置在列表视图下方。像这样:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_gravity="bottom"
android:gravity="center"
android:id="@+id/listview"
android:layout_weight="0.05">
<ImageView
android:id="@+id/buy_now"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listview"
android:src="@drawable/button"/>
或者,如果您希望按钮始终位于活动的底部,请尝试以下操作:
android:layout_alignParentBottom="true"
EDIT1: 尝试在按钮上方设置ListView,而不是在列表视图下方设置按钮。
<ListView
android:layout_below="@+id/list_title"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/buy_now"/>
<Button
android:id="@+id/buy_now"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_alignParentBottom="true"/>
或者您可以使用ScrollView ...