Android RecyclerView瀑布流位置变化和顶部留白问题

来源:互联网 发布:阿里云数据库种类 编辑:程序博客网 时间:2024/06/06 02:18

位置问题:

layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);

顶部留白的问题:

网上很多是在scroll的时候去让recyclerview重新绘制一下span

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() 

{   @Override  

publicvoid onScrollStateChanged(RecyclerView recyclerView,int newState) {  

super.onScrollStateChanged(recyclerView, newState);  

//防止第一行到顶部有空白区域  

layoutManager.invalidateSpanAssignments();  

}

}

);

我这边业务上因为要去设置每个item之间的空隙的时候出了问题


在滑动的时候 spanindex的位置会错乱(因为invalidateSpanAssignments()重新去刷新了span

所以我的做法是在滑动到顶部的时候刷新当前的adapter

@Overridepublic void onScrolled(RecyclerView recyclerView, int dx, int dy) {    super.onScrolled(recyclerView, dx, dy);    StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) recyclerView.getLayoutManager();    int[] firstVisibleItem = null;    firstVisibleItem = layoutManager.findFirstVisibleItemPositions(firstVisibleItem);    if (firstVisibleItem != null && firstVisibleItem[0] == 0) {               if (mAdapter!=null) {            mAdapter.notifyDataSetChanged();                   }    }   


0 0
原创粉丝点击