首页 > 解决方案 > Android Recycler 视图禁用滚动条但不使用 setVerticalScrollBarEnabled

问题描述

我有一个视图寻呼机并有 3 个片段。这 3 个片段是回收者视图。

我想当我拖到下一页时,滚动条会消失。但我不想使用setVerticalScrollBarEnabled. 因为当调用这个方法时,主要内容项会被放大。我认为原因是滚动条宽度是 4dp。因此,主要内容项将按比例放大。我不喜欢这种放大效应。

我也试过setVerticalScrollbarThumbDrawable透明色。但是这个方法需要加上这个条件Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q

任何人都可以给我一些建议。非常感谢。

public void SetRecyclerViewScrollBar(boolean enable) {
        if(this.mRecyclerView != null) {
            this.mAdapter.notifyDataSetChanged();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                if(!enable) {
                    this.mRecyclerView.setVerticalScrollbarThumbDrawable(this.mContext.getDrawable(R.drawable.scrollbar_transparent));
                    this.mRecyclerView.setVerticalScrollbarTrackDrawable(this.mContext.getDrawable(R.drawable.vertical_scrollview_track_transparent));
                } else {
                    this.mRecyclerView.setVerticalScrollbarThumbDrawable(this.mContext.getDrawable(R.drawable.scrollbar));
                    this.mRecyclerView.setVerticalScrollbarTrackDrawable(this.mContext.getDrawable(R.drawable.vertical_scrollview_track));
                }
            }
        }
    }

标签: javaandroidandroid-recyclerviewscrollbar

解决方案


使一些半透明的滚动拇指可绘制并添加:

android:scrollbarStyle="insideOverlay"

或 Java/Kotlin 方面:

scrollableView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

这将使您的拇指不会占用空间,并将被绘制在您的列表/内容的顶部。看看这张照片不同风格的表现。然后你可以使用setVerticalScrollBarEnabled,你的内容空间(整个屏幕宽度)不会改变,也不会被重绘(因此放大)


推荐阅读