RecyclerView
是 Android 中用于显示大量数据集的组件,它通过重用视图来提高性能。smoothScroll
方法用于平滑地滚动 RecyclerView
到指定位置。
在某些情况下,你可能希望 RecyclerView
平滑滚动到某个项并使其居中显示。以下是实现这一功能的方法:
默认情况下,RecyclerView
的 smoothScroll
方法只会滚动到指定项的位置,而不会使其居中。
可以通过计算目标项的位置和 RecyclerView
的尺寸,手动调整滚动位置,使目标项居中。
public void smoothScrollToCenter(RecyclerView recyclerView, int position) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
if (layoutManager == null) {
return;
}
View view = layoutManager.findViewByPosition(position);
if (view == null) {
return;
}
int viewWidth = view.getWidth();
int viewHeight = view.getHeight();
int recyclerViewWidth = recyclerView.getWidth();
int recyclerViewHeight = recyclerView.getHeight();
int offset = (recyclerViewWidth - viewWidth) / 2;
int targetPos = layoutManager.getPosition(view);
recyclerView.smoothScrollToPosition(targetPos);
recyclerView.post(() -> {
layoutManager.scrollToPositionWithOffset(targetPos, offset);
});
}
通过上述方法,你可以实现 RecyclerView
平滑滚动到指定项并使其居中显示。希望这对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云