如果焦点为edittext,则禁止滚动recyclerview

ale*_*080 5 android android-recyclerview

我有一个水平滚动的回收站视图。recyclerview中的每个项目都有edittext。当我单击edittext时,recyclerview滚动到结束。我如何禁止滚动?谢谢!

Cal*_*wis 0

您可以在 EditText 上设置焦点事件侦听器以禁用焦点滚动,并在焦点失焦时再次启用它。

就像是:

edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus){
        recyclerview.addOnItemTouchListener(disabler);
    }else {
        recyclerview.removeOnItemTouchListener(disabler);
    }
   }
 });
Run Code Online (Sandbox Code Playgroud)

其中禁用器是此类的实例(来自此答案):

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) {

    }
}  
Run Code Online (Sandbox Code Playgroud)