我的应用程序中有一个RecyclerView,它显示数据。我想禁用RecyclerView的用户触摸事件。我尝试了下面的代码,但它不起作用。
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
请帮我。
几天前我有一个类似的用例,刚才发现了这个问题: 你也可以添加
到您的RecyclerView。
使用RecyclerView.SimpleOnItemTouchListener
的示例:
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
// true: consume touch event
// false: dispatch touch event
return true;
}
});
当我的SwipeRefreshLayout
通过查询swipeLayout.isRefreshing()
做背景工作时,我消耗了触摸事件。
你可以使用RecyclerView功能
public void setLayoutFrozen(boolean frozen)
您可以覆盖LinearLayoutManager canScrollHorizontally
方法
getRecyclerView().setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false) {
@Override
public boolean canScrollHorizontally() {
return false;
}
});
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
return true;
}
});
只要用它,修复我的所有问题(;