Android NumberPicker,当选择器停止滚动时拦截
我需要用两个数字picker实现一个视图,pickerOne和pickerTwo。pickerTwo值取决于pickerOne的当前值,所以当用户滚动pickerOne时,pickerTwo中的值会发生变化。我已经实现了pickerOne,如:Android NumberPicker,当选择器停止滚动时拦截,android,numberpicker,android-number-picker,Android,Numberpicker,Android Number Picker,我需要用两个数字picker实现一个视图,pickerOne和pickerTwo。pickerTwo值取决于pickerOne的当前值,所以当用户滚动pickerOne时,pickerTwo中的值会发生变化。我已经实现了pickerOne,如: NumberPicker pickerOne= new NumberPicker(context); pickerOne.setLayoutParams(new LinearLayout.LayoutParams( View
NumberPicker pickerOne= new NumberPicker(context);
pickerOne.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
pickerOne.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
pickerOne.setWrapSelectorWheel(false);
pickerOne.setMinValue(0);
pickerOne.setMaxValue(pickerOneValues.length-1);
pickerOne.setDisplayedValues(pickerOneValues);
pickerOne.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int i, int i1) {
Log.d("VALUE", "" + i1);
updatePickerTwoValues(i1);
}
});
只有当用户一步一步地旋转(一次旋转一圈)时,此代码才能正常工作,但如果用户在短时间内进行“能量旋转”,则称为多次旋转。
有一种方法可以在选择器停止旋转时进行拦截,因此只有在旋转停止时,我才能更新选择器两个值?嗯,它确实检查值是否更改,而不是选择器是否移动。我认为有一个单独的侦听器用于检测“最终”更改请参考问题。您可以覆盖onScrollStateChange,并在状态为SCROLL\u state\u IDLEDid时进行检查。您找到了解决方案吗?@dalla92感谢分享信息