RecyclerView
作者:互联网
RecyclerView
1.使用网格布局时的注意事项
Recyclerview使用网格布局时,子项中的宽度应设置为match_parent,不能设置为wrap_content,否则会出现左右边距不同,整体偏向左侧的情况;
RecyclerView中有多种类型时,可以通过GridLayoutManager来指定不同类型item的展示区域大小
/**
* SPAN_COUNT表示的是将屏幕宽度均分的数量
*/
GridLayoutManager mLayoutManager = new GridLayoutManager(getContext(), SPAN_COUNT);
mLayoutManager.setSpanSizeLookUp(new GridLayoutManager.SpanSizeLookUp()
{
@Override
public int getSpanSize(int position)
{
...
//返回值代表position位置的item占屏幕宽度的份数(最大为SPAN_COUNT)
//返回值为SPAN_COUNT表示该item占满屏幕宽度
}
}
2.动态设置RecyclerView中item的间距
mRecyclerView.addItemDecoration(new RecyclerView.ItemDecoration()
{
@Override
public void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent)
{
super.getItemOffsets(outRect, itemPosition, parent);
//以下单位均为px
outRect.left = xxx; //item左侧的间距
outRect.top = xxx; //item顶部的间距
outRect.right = xxx; //item右侧的间距
outRect.bottom = xxx; //item底部的间距
}
}
3.通过ItemTouchHelper类来实现RecyclerView中item的拖拽、侧滑等动作
使用ItemTouchHelper类实现recyclerview中元素的拖拽、侧滑等动作;
其中,触摸相应的方向,包含两个方面:swipeFlags(侧滑)、dragFlags(拖拽);
核心函数:makeMovementFlags(dragFlags,swipeFlags);
若只需要实现拖拽,无需侧滑效果,则将不需要的参数设置为0:
makeMovementFlags(dragFlags,0);
4.RecyclerView.canScrollHorizontally(int direction) | RecyclerView.canScrollVertically(int direction)
返回值表示RecyclerView在指定的方向上是否可滑动的;
参数direction为正数时表示向左 | 上移动(朝X | Y轴的正方向移动),参数为负数时表示向右/下移动(朝X | Y轴的
负方向移动)
标签:COUNT,outRect,int,item,GridLayoutManager,RecyclerView 来源: https://www.cnblogs.com/Ricardoldc/p/12661473.html