我有一个水平滚动的回收站 View 。 recyclerview 中的每个项目都有 edittext。当我点击 edittext 时,recyclerview 滚动到结束。我如何禁止滚动? 谢谢!
最佳答案
您可以在 EditText 上设置一个聚焦事件监听器,以禁用在聚焦时滚动并在它离开聚焦时再次启用它。
类似于:
edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
recyclerview.addOnItemTouchListener(disabler);
}else {
recyclerview.removeOnItemTouchListener(disabler);
}
}
});
禁用器是此类的一个实例(来自 this answer):
public class RecyclerViewDisabler implements RecyclerView.OnItemTouchListener {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
return true;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
}
关于android - 如果焦点是 edittext,则禁止滚动 recyclerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131195/