先看效果图,项目中要实现展示得效果,使用的谷歌,要使用1.0.0,高版本是用于AndroidX
官方解释:
Note that starting from 1.1.0, the library is expected to use with AndroidX. Please migrate to AndroidX if you use 1.1.0 or above.
Please use 1.0.0 if you haven’t migrated to AndroidX.
implementation 'com.google.android:flexbox:1.0.0'
主要代码
package com.zfg.test.weigt;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import com.google.android.flexbox.FlexboxLayout;
import com.zfg.test.R;
import com.zfg.test.adapter.TagAdapter;
/**
* author : zfg
* e-mail : zfg_android@163.com
* date : 2019/7/16
* desc : 标签
*/
public class TagFlowLayout extends FlexboxLayout {
/*是否展示选中效果*/
private boolean isShowHighlight = true;
/*默认和已选的背景*/
private int itemDefaultDrawable;
private int itemSelectDrawable;
/*默认和已选的文字颜色*/
private int itemDefaultTextColor;
private int itemSelectTextColor;
/*操作模式 0 - 多选 | 1 - 单选 | 2 - 纯展示*/
private int mode = MODE_MULTI_SELECT;
/*可选标签的最大数量*/
private int maxSelection;
public static final int MODE_MULTI_SELECT = 0;
public static final int MODE_SINGLE_SELECT = 1;
public static final int MODE_SHOW_SELECT = 2;
public TagFlowLayout(Context context) {
this(context, null);
}
public TagFlowLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public TagFlowLayout(Context context, AttributeSet attrs, int defStyleAttr) {