如何删除android的回收站视图中删除项目后留下的空白区域?

时间:2016-12-17 08:50:55

标签: java android xml layout android-recyclerview

我有一个非常简单的Recyclerview,其布局如下: -

  <LinearLayout
            android:id="@+id/address_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >

            <include layout="@layout/address_recyclerview"></include>

        </LinearLayout>

我的回收者视图布局如下: -

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/adr_recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="4dp"
    android:layout_marginBottom="4dp"
    />

这是我用来从回收站视图中删除项目的代码: -

 private void removeItem(UserInfo list) {
        int current_position = listData.indexOf(list);
        listData.remove(current_position);
        notifyItemRemoved(current_position);
    }

我的线性布局位于滚动视图中。现在当我删除回收器视图中的项目时,该项目被删除但删除后留空空间。当回收者视图中的项目如何自动删除此空间被删除?

感谢任何帮助或建议。谢谢。

2 个答案:

答案 0 :(得分:1)

尝试添加notifyItemRangeChanged(int,int) 在notifyItemRemoved(current_position)之后。

 private void removeItem(UserInfo list) {
    int current_position = listData.indexOf(list);
    listData.remove(current_position);
    notifyItemRemoved(current_position);
    notifyItemRangeChanged (current_position, getItemCount());
}

答案 1 :(得分:1)

也许您将 setHasFixedSize 设置为 true,因此尝试将其设置为 false setHasFixedSize(false) 它将删除该空间