我试图在我的项目中使用AndroidSwipeLayout(https://github.com/daimajia/AndroidSwipeLayout)。一切工作正常,并且满足我的要求。

问题是,当我尝试过滤列表视图时,无法更新数据集。

对于我提到的相同问题,存在一个未解决的问题https://github.com/daimajia/AndroidSwipeLayout/issues/258

有人可以帮我解决这个问题吗

或任何其他库

最佳答案

不太理想的解决方法:
另一种选择是使用过滤列表重置适配器。

假设您的适配器中有列表,请维护一个副本以过滤列表中的项目。使用过滤的列表重置适配器。

伪代码:

ArrayList<CustomObject> originalList;
ArrayList<CustomObject> filteredList;

filteredList = new ArrayList<>();
filteredList.addAll(originalList);

setAdapter(filteredList); //Sets the adapter with filtered List.

//In your searchView implementation

private void onSearchQuery(String searchString) {
   if( searchString == null || searchString.trim().length() == 0 ) {
     filteredList.clear();
     filteredList.addAll(originalList);
     //Since adapter.notifyDataSetChanged() is not working.
     setAdapter(filteredList); //Sets the adapter with filtered List.
   }
   else {
     filteredList.clear();
     for( CustomObject customObject : originalList ) {
        if( customObject.getSearchableField().contains(searchString) ) {
           filteredList.add(customObject);
        }
     }
     //Since adapter.notifyDataSetChanged() is not working.
     setAdapter(filteredList); //Sets the adapter with filtered List.
   }
}

08-15 19:44