Material design首页投稿(暂停使用,暂停投稿)Android故事

RecyclerView相关细节记录

2016-11-12  本文已影响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();  
}  
上一篇 下一篇

猜你喜欢

热点阅读