发现了一些好的东西:
https://github.com/weidongjian/androidWheelView
曾经找到过 WheelView。当时江湖救急,直接用了。数据源太大的话会导致性能降低。
当时有吐槽如果有使用自定义view或者继承ListView、RecyclerView的就好。
今日找到了使用自定义view方法写的。
红色为源码, 蓝色为哥写的对应扩展。
核心源码为LoopView,本来想看看实现原理方法,奈何源码被下了毒。
不过值得庆幸的是核心api还在
有了这些东西那么就可以自己进行一些定制了。
public class DataPickerDialog extends Dialog {
private Params params;
public DataPickerDialog(Context context, int themeResId) {
super(context, themeResId);
}
private void setParams(DataPickerDialog.Params params) {
this.params = params;
}
public interface OnDataSelectedListener {
void onDataSelected(String itemValue);
}
private static final class Params {
private boolean shadow = true;
private boolean canCancel = true;
private LoopView loopData;
private String title;
private String unit;
private int initSelection;
private OnDataSelectedListener callback;
private final List<String> dataList = new ArrayList<>();
}
public static class Builder {
private final Context context;
private final DataPickerDialog.Params params;
public Builder(Context context) {
this.context = context;
params = new DataPickerDialog.Params();
}
private final String getCurrDateValue() {
return params.loopData.getCurrentItemValue();
}
public Builder setData(List<String