我尝试创建一个看起来像这样的布局:
这样我最终有5个Listviews和5个ImageButtons。
如果我在每个ListView
中只有一个元素,它可以正常工作,但是当我开始添加越来越多的元素时,按钮会消失在元素后面。
现在它看起来像一个大ListView
而不是被Button
分开。
那是layout.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:id="@+id/detailview_1_listview"/>
<ImageButton
android:id="@+id/detailview_1_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_1_listview"
android:src="@android:drawable/ic_input_add" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailview_1_button_add"
android:id="@+id/detailview_2_listview"/>
<ImageButton
android:id="@+id/detailview_2_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_2_listview"
android:src="@android:drawable/ic_input_add" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailview_2_button_add"
android:id="@+id/detailview_3_listview"/>
<ImageButton
android:id="@+id/detailview_3_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_3_listview"
android:src="@android:drawable/ic_input_add" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailview_3_button_add"
android:id="@+id/detailview_4_listview"/>
<ImageButton
android:id="@+id/detailview_4_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_4_listview"
android:src="@android:drawable/ic_input_add" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailview_4_button_add"
android:id="@+id/detailview_5_listview" />
<ImageButton
android:id="@+id/detailview_5_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_5_listview"
android:src="@android:drawable/ic_input_add" />
</RelativeLayout>
而list_item.xml
是
<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:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/detailview_1_imageview"
android:layout_width="109dp"
android:layout_height="112dp"
app:srcCompat="@android:drawable/ic_menu_gallery"
tools:layout_editor_absoluteX="62dp"
tools:layout_editor_absoluteY="62dp" />
<ImageView
android:id="@+id/detailview_2_imageview"
android:layout_width="109dp"
android:layout_height="112dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="196dp"
app:srcCompat="@android:drawable/ic_menu_gallery"
tools:layout_editor_absoluteX="62dp"
tools:layout_editor_absoluteY="62dp" />
<Switch
android:id="@+id/detailview_switch_mangel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="524dp"
android:layout_marginTop="94dp"
android:text="Mangel" />
<EditText
android:id="@+id/detailview_textview_beschreibung"
android:layout_width="230dp"
android:layout_height="73dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="366dp"
android:layout_marginTop="28dp"
android:ems="10"
android:inputType="textMultiLine"
android:hint="Beschreibung"/>
<EditText
android:id="@+id/detailview_textview_fensternummer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/detailview_switch_mangel"
android:layout_alignTop="@+id/detailview_textview_beschreibung"
android:ems="10"
android:hint="Nummer"
android:inputType="number" />
</RelativeLayout>
答案 0 :(得分:2)
我建议您在每个ImageButton
下添加ListView
作为ListView
的页脚。在这种情况下,该按钮将不再隐藏,您将在滚动列表时获得适当的行为。
在ListView
中添加页脚非常简单。为方便起见,我只是从这个answer here共享一些代码。
View footerView = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
list.addFooterView(footerView);
在将适配器设置为ListView
之前,请务必在ListView
中添加页脚视图。
使用NestedScrollView
还有另一种方法可以获得所需的行为。以下是关于如何在单个RecyclerView
内拥有多个NestedScrollView
的{{3}}。
如果您考虑使用RecyclerView
代替ListView
,则可能只有一个RecyclerView
,并根据您的需要填充项目,如建议的方式nice tutorial。我们的想法是拥有一个RecyclerView
,以便您可以以最有效的方式实现滚动和回收视图。
答案 1 :(得分:1)
使用ScrollView
作为父级布局。然后,您的listview
将不会与您的imageButtons
合并。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:id="@+id/detailview_1_listview"/>
<ImageButton
android:id="@+id/detailview_1_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_1_listview"
android:src="@android:drawable/ic_input_add"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/detailview_1_button_add"
android:id="@+id/detailview_2_listview"/>
<ImageButton
android:id="@+id/detailview_2_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_2_listview"
android:src="@android:drawable/ic_input_add"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/detailview_2_button_add"
android:id="@+id/detailview_3_listview"/>
<ImageButton
android:id="@+id/detailview_3_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_3_listview"
android:src="@android:drawable/ic_input_add"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/detailview_3_button_add"
android:id="@+id/detailview_4_listview"/>
<ImageButton
android:id="@+id/detailview_4_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_4_listview"
android:src="@android:drawable/ic_input_add"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/detailview_4_button_add"
android:id="@+id/detailview_5_listview"/>
<ImageButton
android:id="@+id/detailview_5_button_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_below="@id/detailview_5_listview"
android:src="@android:drawable/ic_input_add"
/>