滑动timepicker可点选
时间: 2023-09-07 17:14:36 浏览: 36
是的,您可以通过在TimePicker组件上添加onTouch事件来实现滑动可点选的功能。在该事件中,您可以根据手指的滑动方向来增加或减少时间值,并将更新后的值设置回TimePicker组件中。以下是一个简单的示例代码:
```java
TimePicker timePicker = findViewById(R.id.time_picker);
timePicker.setOnTouchListener(new View.OnTouchListener() {
int initialMinute = 0;
int initialHour = 0;
float initialTouchX = 0;
float initialTouchY = 0;
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialTouchX = event.getX();
initialTouchY = event.getY();
initialHour = timePicker.getCurrentHour();
initialMinute = timePicker.getCurrentMinute();
break;
case MotionEvent.ACTION_MOVE:
float dX = event.getX() - initialTouchX;
float dY = event.getY() - initialTouchY;
if (Math.abs(dX) > Math.abs(dY)) {
// horizontal swipe
int deltaHour = (int) (dX / 10); // adjust this value based on your preference
timePicker.setCurrentHour(initialHour + deltaHour);
} else {
// vertical swipe
int deltaMinute = (int) (dY / 10); // adjust this value based on your preference
timePicker.setCurrentMinute(initialMinute + deltaMinute);
}
break;
}
return true;
}
});
```