Android - 如何禁用RecyclerView自动滚动点击

时间:2017-04-03 10:47:19

标签: android android-recyclerview

从API 24开始,RecyclerView将自动滚动到用户单独显示的项目,单击该项目。 如何禁用此功能?

以下代码适用于support-library 25.0.1

@Override
    public boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate) {
        Object tag = child.getTag();
        if( tag != null && tag.toString().equalsIgnoreCase("preventAutoScroll") ){
            return false;
        }
        return super.requestChildRectangleOnScreen(child, rect, immediate);
    }

它必须是可聚焦和可点击的,因为它是TextView并且文本需要是可选择的。

1 个答案:

答案 0 :(得分:3)

在回收站视图上设置布局管理器的覆盖版本。在我的情况下,我想禁用某个特定的子视图,例如。

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context) {
        @Override
        public boolean requestChildRectangleOnScreen(RecyclerView parent, View child, Rect rect, boolean immediate, boolean focusedChildVisible) {

            if (((ViewGroup) child).getFocusedChild() instanceof YourFocusableChildViewClass) {                    
                return false;
            }

            return super.requestChildRectangleOnScreen(parent, child, rect, immediate, focusedChildVisible);
        }
    };