android - 如果焦点是 edittext,则禁止滚动 recyclerview

标签 android android-recyclerview

我有一个水平滚动的回收站 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/

相关文章:

android - Dagger-Hilt @ViewModelInject sharedViewModel 不注入(inject) fragment

android - 如果没有图标,将抽屉导航中的项目调整到左侧

android - 通过单击 recyclerview 项目打开 fragment

android - 删除项目后仍然存在于 recyclerview

android - 由于Android目标,Kotlin Multiplatform构建失败

java - 如何更新sqlite android中的整数值

android - 使用 GridLayoutManager 增加 RecyclerView 中的单元格宽度

java - RecyclerView不可见

java - 使用 bazel "cannot find symbol class Fill where T is a type-variable: T extends Object declared in class Zeros"的 Tensorflow android 演示问题

android - 快速滚动 recyclerView 列表时,RecyclerView 内的 NetworkImageView 有时不会加载图像。 Volley 网络响应缓慢