Listviews之间的按钮消失了

时间:2018-06-08 09:09:17

标签: android android-layout listview

我尝试创建一个看起来像这样的布局:

  • 列表视图
  • 的ImageButton
  • Listview
  • 的ImageButton
  • Listview
  • 的ImageButton
  • ....

这样我最终有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>

2 个答案:

答案 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"
    />