Browse Source

fix: android native variant stops responding at unmount during spinn (#296)

master
Harold Lopez 4 years ago
committed by GitHub
parent
commit
e71232870c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 3 deletions
  1. +9
    -3
      android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java

+ 9
- 3
android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java View File

@ -24,6 +24,7 @@ public class AndroidNative extends NumberPicker implements Picker {
private int state = SCROLL_STATE_IDLE; private int state = SCROLL_STATE_IDLE;
private OnValueChangeListenerInScrolling listenerInScrolling; private OnValueChangeListenerInScrolling listenerInScrolling;
private boolean isAnimating; private boolean isAnimating;
private final Handler handler = new Handler();
public AndroidNative(Context context) { public AndroidNative(Context context) {
super(context); super(context);
@ -111,7 +112,7 @@ public class AndroidNative extends NumberPicker implements Picker {
int timeBetweenScrollsMs = 100; int timeBetweenScrollsMs = 100;
int willStopScrollingInMs = timeBetweenScrollsMs * moves; int willStopScrollingInMs = timeBetweenScrollsMs * moves;
isAnimating = true; isAnimating = true;
new Handler().postDelayed(new Runnable() {
handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
isAnimating = false; isAnimating = false;
@ -149,7 +150,7 @@ public class AndroidNative extends NumberPicker implements Picker {
private void changeValueByOne(final boolean increment, final int ms, final boolean isLast) { private void changeValueByOne(final boolean increment, final int ms, final boolean isLast) {
final AndroidNative self = this; final AndroidNative self = this;
new Handler().postDelayed(new Runnable() {
handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
changeValueByOne(self, increment); changeValueByOne(self, increment);
@ -202,7 +203,7 @@ public class AndroidNative extends NumberPicker implements Picker {
} }
private void sendEventIn500ms(){ private void sendEventIn500ms(){
new Handler().postDelayed(new Runnable() {
handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
onValueChangedListener.onValueChange(); onValueChangedListener.onValueChange();
@ -211,4 +212,9 @@ public class AndroidNative extends NumberPicker implements Picker {
}, 500); }, 500);
} }
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
handler.removeCallbacksAndMessages(null);
}
} }

Loading…
Cancel
Save