【发布时间】:2020-06-15 07:42:14
【问题描述】:
我有一个 recyclerview,它在我的 android 应用程序上有一个滑动菜单(背景按钮)。 我参考的文章是:https://codeburst.io/android-swipe-menu-with-recyclerview-8f28a235ff28
这篇文章很有帮助,我成功嵌入了滑动菜单功能的基本功能。
但是,在嵌入了 recyclerview 列表的过滤器功能后,我注意到我必须想办法手动/以编程方式重置/清除滑动菜单,因为在过滤了卡片视图列表后,滑动菜单是在每个列表的背景中徘徊,但我不知道如何解决这个问题。 (如附图所示)
我尝试过的事情是:
适配器的 notifyDataSetChanged - 不起作用
适配器的 notifyItemChanged - 不起作用
重置 ItemTouchHelper(置空并重新附加)- 不起作用
recyclerview.performClick 重置 ItemTouchHelper 的状态 - 不起作用
根据文章,似乎单击回收器视图会重置 ItemTouchHelper 的状态。
您能否教我如何以编程方式单击回收站视图或任何其他解决方案(如果有)?
以下代码是我认为与解决此问题相关的文章来源的一小部分...
private void setTouchUpListener(final Canvas c,
final RecyclerView recyclerView,
final RecyclerView.ViewHolder viewHolder,
final float dX, final float dY,
final int actionState, final boolean isCurrentlyActive) {
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
SwipeController.super.onChildDraw(c, recyclerView, viewHolder, 0F, dY, actionState, isCurrentlyActive);
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
setItemsClickable(recyclerView, true);
swipeBack = false;
buttonShowedState = ButtonsState.GONE;
}
return false;
}
});
}
After the swipe menu emerged by swiping Swipe menus remained after filtering the list
【问题讨论】:
标签: java filter android-recyclerview listadapter itemtouchhelper