安卓项目实战之:RecyclerView实现中奖公告列表信息垂直自动无限滚动效果
发布日期:2021-05-10 14:01:23 浏览次数:23 分类:精选文章

本文共 4558 字,大约阅读时间需要 15 分钟。

RecyclerView������������������������

������UI������������������������������������������������������������������������������������������������������������������������UI���������������������������������������������������������������������������������RecyclerView������������������������������������

skirt skinny

���������

������������������RecyclerView������������������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������RecyclerView���������������������������������������������

������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

������������������RecycleView��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� retiring������������������������������������������������

������������

������������������������������LayoutManager������Scroller������������������������������������������������������������������������������������������������ enslaved ������PerPixel������������������������������������������������������������������oppourtunity���������������������������������������������������

Solution Code

LayoutManager���������

������������������������������������������������������������������LayoutManager��� AutoScrollLayoutManager������������ LinearLayoutManager������������������������������������������������������������������

public class AutoScrollLayoutManager extends LinearLayoutManager {
public AutoScrollLayoutManager(Context context) {
super(context);
}
public AutoScrollLayoutManager(Context context, @Nullable AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public AutoScrollLayoutManager(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) {
@Nullable
@Override
public PointF computeScrollVectorForPosition(int targetPosition) {
return AutoScrollLayoutManager.this.computeScrollVectorForPosition(targetPosition);
}
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return 15f / displayMetrics.density;
}
};
linearSmoothScroller.setTargetPosition(position);
startSmoothScroll(linearSmoothScroller);
}
}

������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

this.setOnScrollListener(
new OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
AutoScrollLayoutManager lm = (AutoScrollLayoutManager) recyclerView.getLayoutManager();
int position = lm.findLastCompletelyVisibleItemPosition();
int count = lm.getItemCount();
if (position == count - 1) {
lm.scrollToPosition(0);
AutoScrollRecyclerView.this.smoothScrollToPosition(mAdapter.getItemCount());
}
}
}
}
);

���������������

������������������������������������������������������������������������������������������������������������������������������������������������������������

model

���������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

angle

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

carpet

上一篇:5步学会表单验证框架android-saripaar的使用
下一篇:XEditText文本输入框的使用

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月04日 02时54分40秒