Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示具有不同高度的项目列表_Java_Android_Android Recyclerview - Fatal编程技术网

Java 显示具有不同高度的项目列表

Java 显示具有不同高度的项目列表,java,android,android-recyclerview,Java,Android,Android Recyclerview,我有一个清单,上面有一系列不同高度的物品。我希望滚动条的行为像普通的滚动条一样,有一个固定的高度,当用户在列表中滚动时,可以从页面顶部平滑地滚动到底部 我试图使用自定义RecyclerView并直接调用computeVerticalScrollExtent和computeVerticalScrollRange,但这些方法的行为不稳定 @Override public int computeVerticalScrollExtent() { return 3; } @Override pu

我有一个清单,上面有一系列不同高度的物品。我希望滚动条的行为像普通的滚动条一样,有一个固定的高度,当用户在列表中滚动时,可以从页面顶部平滑地滚动到底部

我试图使用自定义RecyclerView并直接调用computeVerticalScrollExtent和computeVerticalScrollRange,但这些方法的行为不稳定

@Override
public int computeVerticalScrollExtent() {
    return 3;
}

@Override
public int computeVerticalScrollRange() {
    return sizeOfList;
}
通常,sizeOfList大约为20。由于某种原因,当我向下滚动时,滚动条立即跳到屏幕底部,并在我继续向下滚动时停留在那里。我可以通过在500左右制作sizeOfList来解决这个问题。我不知道为什么会这样,因为文档声称我定义的单位将是使用的单位。如果我尝试使用computeVerticalScrollOffset,滚动条永远不会移动

/**
*计算垂直滚动条拇指在垂直范围内的垂直范围。
*此值用于计算滚动条轨迹中拇指的长度

* *范围以任意单位表示,必须与所使用的单位相同 *{@link#computeVerticalScrollRange()}和{@link#computeVerticalScrollOffset()}

* *默认实现返回0

* *如果要支持滚动条,请覆盖 *{@link RecyclerView.LayoutManager#computeVerticalScrollExtent(RecyclerView.State)}在您的 *布局经理

这是来自RecyclerView文档。我不确定最后一行是什么意思,因为滚动条在大部分情况下都可以工作,而文档对此没有进一步解释。我尝试过这个,但没有成功

这种方法的唯一解释是

如果要支持滚动条,请重写此方法

这没用

/**
 * <p>Compute the vertical extent of the vertical scrollbar's thumb within the vertical range.
 * This value is used to compute the length of the thumb within the scrollbar's track.</p>
 *
 * <p>The range is expressed in arbitrary units that must be the same as the units used by
 * {@link #computeVerticalScrollRange()} and {@link #computeVerticalScrollOffset()}.</p>
 *
 * <p>Default implementation returns 0.</p>
 *
 * <p>If you want to support scroll bars, override
 * {@link RecyclerView.LayoutManager#computeVerticalScrollExtent(RecyclerView.State)} in your
 * LayoutManager.</p>