android开发基本工具总结

将个人在开发过程中使用到的相对独立的逻辑功能封装上传至github中并通过gradle依赖使用

Posted by catface on January 1, 2015

本篇总结项目为CTool

在项目的gradle文件中添加依赖

1
implementation 'com.github.itCatface:CTool:latest-version'

使用方式详述

事件类

防抖–>AntiShakeClickListener

设置防抖时长,默认为1s

1
2
3
4
5
6
bt.setOnClickListener(new AntiShakeClickListener(1_000) {
    @Override
    protected void onAntiShakeClick(View view) {
        // todo...
    }
});

RecyclerView条目点击–>ItemClickSupport

支持长短和短按

1
2
3
ItemClickSupport.addTo(rv).setOnItemClickListener((recyclerView, position, v) -> {
    // todo...
});

控件类

TextView相关–>TextViewUtils

字符串内匹配文本高亮,支持匹配关键字集合,支持英文大小写忽略,支持自定义高亮颜色

1
tv.setText(TextViewUtils.highlight("full content", "l", Color.parseColor("#4285f4")));

RecyclerView相关

Adapter封装–>CustomBindingAdapter

封装了Holder和DataBinding

Adapter封装–>ListBindingAdapter

在CustomBindingAdapter的基础上添加了单个List数据源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TempAdapter extends ListBindingAdapter<Person, ItemAdapterTempBinding> {

    public TempAdapter(List<Person> datas) {
        super(datas);
    }

    @Override public int layoutId() {
        return R.layout.item_adapter_temp;
    }

    @Override public void onBindHolder(ItemAdapterTempBinding binding, int position) {
        Person person = getDatas().get(position);
        binding.tvName.setText(person.getName());
    }
}