基本上我希望我的recyclerview自动滚动到项目未显示一半的位置。就像googleplay中的那个。
我写了一段代码
public void scrollToVisible(){
int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
View view = recyclerView.getLayoutManager().getChildAt(0);
if (firstVisibleItemPosition > 0 && view != null) {
int offsetTop = view.getTop();
if (firstVisibleItemPosition - 1 >= 0 && adapter.getItemCount() > 0) {
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(firstVisibleItemPosition - 1, offsetTop);
}
}
}
接下来是问题所在。我不知道在哪里放这个代码。当Recyclerview停止滚动时,我有一个模糊的想法,但我现在已经搜索了很长时间,我无法找到这样的方法。当我把它放在onScroll上时出现了一些意想不到的行为
答案 0 :(得分:1)
您可以创建 CustomRecyclerView ,扩展 RecyclerView
public class CustomRecyclerView extends RecyclerView {
@Override
public void onScrollStateChanged(int state) {
super.onScrollStateChanged(state);
// check if scrolling has stopped
if (state == SCROLL_STATE_IDLE) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) getLayoutManager();
// use code here
}
}
答案 1 :(得分:0)
如果对某人有任何帮助:
{{1}}