我在RecyclerView
的布局中实施了SwipeRefreshLayout
。我找到RecyclerView
,设置其适配器以及在方法内调用addOnItemTouchListener()
。每次刷新SwipeRefreshLayout
时都会调用此方法。
在Touch Listener中,调用并显示AlertDialog
。
每次我在SwipeRefreshLayout
刷新时,它似乎都在添加一个Touch Listener。最终会发生的是AlertDialog
现在多次显示,具体取决于您刷新的次数。
我怎样才能解决这个问题,即使刷新对话只显示一次?:
private void initRecyclerView() {
RecyclerView ticketRecyclerView = (RecyclerView) findViewById(R.id.recycler_tickets);
ticketsAdapter = new TicketsAdapter(this);
ticketRecyclerView.setLayoutManager(new LinearLayoutManager(this));
ticketRecyclerView.setAdapter(ticketsAdapter);
ticketRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, ticketRecyclerView, new ClickListener() {
}
}
答案 0 :(得分:0)
每次刷新时,都会添加OnItemTouchListener
。这不会取代以前添加的侦听器;它只是增加了它们。
要更正此问题,您必须在刷新或remove the last one时不要添加其他触控侦听器。
removeOnItemTouchListener
void removeOnItemTouchListener(RecyclerView.OnItemTouchListener listener)
删除RecyclerView.OnItemTouchListener。它将无法再拦截触摸事件。