6 android android-recyclerview
我的应用程序中有一个RecyclerView,它显示数据.我想禁用RecyclerView的用户触摸事件.我尝试了下面的代码,但它不起作用.
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
请帮我.
小智 12
因为几天前我有一个类似的用例,并且刚才偶然发现了这个问题:
你可以添加其中一个
到您的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;
}
});
Run Code Online (Sandbox Code Playgroud)
当我SwipeRefreshLayout通过查询做背景工作时,我消耗了触摸事件swipeLayout.isRefreshing().
爪哇:
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
科特林:
recyclerView.addOnItemTouchListener(object : RecyclerView.SimpleOnItemTouchListener() {
override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
return true
}
})
Run Code Online (Sandbox Code Playgroud)
就用这个,解决我的问题(;
如果返回true 触摸事件被禁用。
如果false启用返回触摸事件。
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你..
| 归档时间: |
|
| 查看次数: |
10238 次 |
| 最近记录: |