RecyclerView相关细节记录

作者: 骑着海去看蜗牛 | 来源:发表于2016-11-12 00:35 被阅读188次
list_mail.png

item项布局应该设为wrap_content

当item项设置为match_parent时,如果只有一行数据,并且页面展示高度大于一屏幕时,会发现RecyclerView无法滑动,试了各种方法,最后发现是由于此问题导致。

setOnScrollListener 计算高度的问题

当RecyclerView的item增加或者删除的时候,通过累加的方式计算用户滑动的绝对距离会不再准确,可能导致某些业务逻辑的失败,此时可以通过LinearLayoutManager来计算,但是也有局限性,需要每一项都是固定高度,否则也会带来误差。代码如下

public int getScollYDistance() {  
    LinearLayoutManager layoutManager = (LinearLayoutManager) this.getLayoutManager();  
    int position = layoutManager.findFirstVisibleItemPosition();  
    View firstVisiableChildView = layoutManager.findViewByPosition(position);  
    int itemHeight = firstVisiableChildView.getHeight();  
    return (position) * itemHeight - firstVisiableChildView.getTop();  
}  

相关文章

网友评论

    本文标题:RecyclerView相关细节记录

    本文链接:https://www.haomeiwen.com/subject/ukexpttx.html