fixed bug
想反复动态改变数据,会出现边框的没有跟随变化的问题。
drawable的对象不能提前初始化,即可用,即可获取,保证实时动态刷新。
getTextView().setBackground(getDrawable());
private GradientDrawable getDrawable() {
GradientDrawable radiusBg = new GradientDrawable();
//设置Shape类型
radiusBg.setShape(GradientDrawable.RECTANGLE);
//设置填充颜色
// radiusBg.setColor(Color.WHITE);
//设置线条粗心和颜色,px
radiusBg.setStroke(strokeWidth, Color.GRAY);
//设置圆角角度,如果每个角度都一样,则使用此方法
radiusBg.setCornerRadius(radius);
radiusBg.setSize(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
return radiusBg;
}
1.特点:
以setAdapter形式注入数据,使用观察者模式支持更新数据。
1.支持边框颜色
2.支持边框宽度
3.支持填充颜色
4.支持圆角弧度
5.支持文本颜色
效果图:
2.使用
1.project–> build.gradle文件添加
allprojects {
repositories {
google()
jcenter()
maven{ url "https://jitpack.io"}
}
}
2.app 添加依赖
implementation 'com.github.cts33:FlowingLayout:2.0.0'
3.案例使用
public class MainActivity extends AppCompatActivity {
private FlowingLayout mFlow;
private List<String> list = new ArrayList<>();
CommonFlowAdapter commonFlowAdapter= new CommonFlowAdapter<String>(this){
@Override
public String getItem(int i) {
return mDatas.get(i);
}
@Override
public void convert(FlowHolder holder, String item, int position) {
holder.setText(R.id.title,item);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
list.add("111");
list.add("2");
list.add("3344444444433");
list.add("YYYYYYYY");
list.add("EEEEE");
list.add("FFFFFFFF");
mFlow = (FlowingLayout) findViewById(R.id.flow);
mFlow.setChildLRMargin(10);
mFlow.setChildTBMargin(5);
mFlow.setPadding(15,5,15,5);
mFlow.setBorder("#DAE0DC",1, Color.RED,15);
mFlow.setChildTextColor(Color.parseColor("#262E79"));
mFlow.setAdapter(commonFlowAdapter);
commonFlowAdapter.addItems(list);
commonFlowAdapter.notifyDataSetChanged();
}
}