基于RecycleView写的一个WheelView
dateWheel = (RecycleWheelView) findViewById(R.id.dateWheelView);
dateWheel.setLabelTextColor(getResources().getColor(R.color.colorAccent));
dateWheel.setLineColor(getResources().getColor(R.color.colorAccent));
dateWheel.setVisibleItem(5);
dateWheel.setLabel("cm");
mAdapter = new WheelAdapter<>(this);
List<String> dataList = new ArrayList<>();
for (int i = 60; i < 240; i++) {
dataList.add(String.format("%d", i));
}
mAdapter.setData(dataList);
dateWheel.setAdapter(mAdapter);
dateWheel.setSelectedItem(50);
dateWheel.setOnSelectListener(new RecycleWheelView.OnSelectItemListener() {
@Override
public void onSelectChanged(int position) {
mAdapter.setSelectedIndex(position);
Toast.makeText(MainActivity.this, "index=" + position, Toast.LENGTH_SHORT).show();
}
});
public void onDateClick(View view) {
final NumberPicker picker = new NumberPicker(this);
picker.setTopLineVisible(true);
picker.setTextColor(R.color.mainBlue);
picker.setLineColor(R.color.mainBlue);
picker.setTopLineColor(0XFFFFFF);
picker.setOptLineVisible(true);
picker.setCancelVisible(false);
picker.setOffset(2);
picker.setRange(145, 200);
picker.setSelectedItem(172);
picker.setLabel("厘米");
picker.setOnOptionPickListener(new OptionPicker.OnOptionPickListener() {
@Override
public void onOptionPicked(String option) {
Log.e("this", " value=" + option);
Log.e("sele", "value= " + picker.getSelectedValue());
}
});
picker.show();
}
- 加标签,定制颜色,大小等效果。例如图片显示的年
- 设置是否渐显
- 设置是否缩小
(curve)
- 显示的item数目
- 中间选中的颜色和没选中的原色不一样功能(用丑陋的回调方式解决了)
- 目前还不能自适应大小 就是当设置只显示3个时候,不能动态调节ChildView的大小,使其自动填充整个界面
- 在设置为curve的时候,显示有些小问题,暂时不建议使用
目前这个还在迭代,还有不少问题,今天看到一个更功能齐全的