自定义 FlowingLayout流式布局

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();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值