请注明出处http://blog.csdn.net/qq_23179075/article/details/69484371
最近在一个项目中要实现一个这样的效果:
![OR02HABV]ID%@LFO$M8$ZB0.png](http://upload-images.jianshu.io/upload_images/2909848-f455521d5af6f1fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
也就是上面红线框中的部分的切换按钮,按钮整体的居中,且间距相等,按钮的样式也要随着是否选中来改变状态。本来最开始是想使用RadioGroup+RadioButton来实现的,但是项目中的这个切换按钮的个数是动态的,有时候是3个,有时是2个,1个,或者没有,这时候用RadioGroup就非常不方便。
最后决定用RecyclerView来实现,感觉方便多了!,这里主要记录一下RecyclerView设置Item间距的方式:
/**
* 时 间: 2017/4/6
* 作 者: 郑亮
* Q Q : 1023007219
*/
public class SpaceItemDecoration extends RecyclerView.ItemDecoration {
//间距大小
private int space;
public SpaceItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
if (parent.getChildAdapterPosition(view) == 0) {
//item是第一个的时候不设置间距
outRect.left = 0;
}else {
outRect.left = space;
}
}
}
使用方式
//设置图标的间距
int spacingInPixels = getResources().getDimensionPixelSize(R.dimen.px168);
recyclerView.addItemDecoration(new SpaceItemDecoration(spacingInPixels));