当前位置: 首页 > 知识库问答 >
问题:

RecyclerView快速滚动拇指高度对于大型数据集太小

傅胡媚
2023-03-14

我正在使用默认的recyclerview快速滚动,我遵循了本指南来支持它。

共有1个答案

丌官绍元
2023-03-14

我通过从android.support.v7.widget.FastScroll复制FastScroll类来解决这个问题

然后我从xml中删除了启用的fast scroll,并使用以下代码应用了fast Scroller:

StateListDrawable verticalThumbDrawable = (StateListDrawable) getResources().getDrawable(R.drawable.fastscroll_sunnah);
Drawable verticalTrackDrawable = getResources().getDrawable(R.drawable.fastscroll_line_drawable);
StateListDrawable horizontalThumbDrawable = (StateListDrawable)getResources().getDrawable(R.drawable.fastscroll_sunnah);
Drawable horizontalTrackDrawable = getResources().getDrawable(R.drawable.fastscroll_line_drawable);

Resources resources = getContext().getResources();
new FastScroller(recyclerView, verticalThumbDrawable, verticalTrackDrawable,
                horizontalThumbDrawable, horizontalTrackDrawable,
                resources.getDimensionPixelSize(R.dimen.fastscroll_default_thickness),
                resources.getDimensionPixelSize(R.dimen.fastscroll_minimum_range),
                resources.getDimensionPixelOffset(R.dimen.fastscroll_margin));

在FastScroller类内部,我扩展了DefaultWidth:

FastScroller(RecyclerView recyclerView, StateListDrawable verticalThumbDrawable,
        Drawable verticalTrackDrawable, StateListDrawable horizontalThumbDrawable,
        Drawable horizontalTrackDrawable, int defaultWidth, int scrollbarMinimumRange,
        int margin) {
    ...
    this.defaultWidth = defaultWidth;
    ...

然后我更新了这个方法中的代码:

void updateScrollPosition(int offsetX, int offsetY) {
...
mVerticalThumbHeight = Math.max(defaultWidth * 4, Math.min(verticalVisibleLength,
                (verticalVisibleLength * verticalVisibleLength) / verticalContentLength));
...
...
mHorizontalThumbWidth = Math.max(defaultWidth * 4, Math.min(horizontalVisibleLength,
                (horizontalVisibleLength * horizontalVisibleLength) / horizontalContentLength));
...    
}

这确保最小拇指高度/宽度是默认宽度的4倍。

 类似资料:
  • 我有一个艰难的时间,在这个蛇游戏中计算速度的物理,我用pyplay。问题是,一旦我将fps设置为高于15,蛇的速度也会增加。我知道这与毫秒等有关,我发现这是有效的,高fps和慢速度。然而,在那一点上,我不能让X和Y正确,这样我就可以吃苹果了。在这一点上,我几乎迷失了方向。这是我的整个蛇游戏。我不介意分享它,因为我想一完成就开源。

  • 在ListView上,您可以使用一个快速滚动条,它允许您拖动滚动条,以便轻松滚动到您希望的任何位置(使用fastScrollEnabled属性) 再加上“SectionIndexer”类和一些可选的属性,您可以在使用此滚动条时看到一个漂亮的弹出窗口(此处链接)。 这种东西显示在联系人应用程序上,这样你就可以很容易地滚动到特定的字母。 RecyclerView似乎没有这些。甚至连快速滚动都没有。 如

  • 嗨,有没有什么方法可以提高滚动速度。我找到了一些解决方案,但都不适合我。这就是我尝试的: 或者使用css: 还有别的办法吗?编辑:上面的解决方案都不起作用,我试图使用大得离谱的数字,但滚动速度还是一样

  • 我正在项目的中添加。 所有工作都很好,但在JPanel中使用鼠标滚轮滚动鼠标存在一个问题。滚动时速度很慢。如何让它更快? 我的代码是:

  • 我正在使用来使我的中的项目在屏幕上“对齐”(我的卡片占据了屏幕的大部分,所以我希望它们在每次刷/抛/滚动时都对齐并填充屏幕)。 我在苦苦思索如何让卡片更快地卡入位。我已经尝试创建自定义的(并编辑或中的方法),以及自定义的(并编辑fling方法)。但没有任何东西影响卡“卡”入位的速度。 我想问题是我真的不明白是如何将卡片“滚动”到正确的位置的。它似乎没有使用的或方法。