@@ -13,17 +13,17 @@ export function sliderGetEnabledColorStateList(color: Color, alpha = 255) {
1313 }
1414 return getEnabledColorStateList ( color . android , new Color ( alpha , 158 , 158 , 158 ) . android ) ;
1515}
16- export const valueProperty = new CoercibleProperty < Slider , number > ( {
16+ export const valueProperty = new Property < Slider , number > ( {
1717 name : 'value' ,
1818 // defaultValue: 0,
19- coerceValue : ( target , value ) => {
20- if ( target . minValue !== undefined && target . maxValue !== undefined ) {
21- value = Math . max ( value , target . minValue ) ;
22- value = Math . min ( value , target . maxValue ) ;
23- }
19+ // coerceValue: (target, value) => {
20+ // if (target.minValue !== undefined && target.maxValue !== undefined) {
21+ // value = Math.max(value, target.minValue);
22+ // value = Math.min(value, target.maxValue);
23+ // }
2424
25- return value ;
26- } ,
25+ // return value;
26+ // },
2727 valueConverter : ( v ) => parseFloat ( v )
2828} ) ;
2929/**
@@ -34,7 +34,7 @@ export const minValueProperty = new Property<Slider, number>({
3434 // defaultValue: 0,
3535 valueChanged : ( target , oldValue , newValue ) => {
3636 maxValueProperty . coerce ( target ) ;
37- valueProperty . coerce ( target ) ;
37+ // valueProperty.coerce(target);
3838 } ,
3939 valueConverter : ( v ) => parseFloat ( v )
4040} ) ;
@@ -52,7 +52,7 @@ export const maxValueProperty = new CoercibleProperty<Slider, number>({
5252
5353 return value ;
5454 } ,
55- valueChanged : ( target , oldValue , newValue ) => valueProperty . coerce ( target ) ,
55+ // valueChanged: (target, oldValue, newValue) => valueProperty.coerce(target),
5656 valueConverter : ( v ) => parseFloat ( v )
5757} ) ;
5858export class Slider extends View {
@@ -79,6 +79,8 @@ export class Slider extends View {
7979 }
8080 const result = new ASlider ( this . _context ) ;
8181 result . setLabelBehavior ( 2 ) ; // com.google.android.material.slider.LabelFormatter.LABEL_GONE
82+ result . setValueFrom ( DEFAULT_MIN ) ;
83+ result . setValueTo ( DEFAULT_MAX ) ;
8284 return result ;
8385 }
8486 initNativeView ( ) {
@@ -91,8 +93,6 @@ export class Slider extends View {
9193 }
9294 }
9395 } ) ;
94- nativeView . setValueFrom ( this . minValue || DEFAULT_MIN ) ;
95- nativeView . setValueTo ( this . maxValue || DEFAULT_MAX ) ;
9696 nativeView . addOnChangeListener ( this . listener ) ;
9797 }
9898 disposeNativeView ( ) {
@@ -149,10 +149,14 @@ export class Slider extends View {
149149 this . nativeViewProtected . setStepSize ( value ) ;
150150 }
151151 [ valueProperty . setNative ] ( value ) {
152- // ensure we set min/max to prevent errors in listviews while reusing cells
153- // will sliders with different min/max
154- this . nativeViewProtected . setValueFrom ( this . minValue || DEFAULT_MIN ) ;
155- this . nativeViewProtected . setValueTo ( this . maxValue || DEFAULT_MAX ) ;
152+ // ensure we set min/max to prevent errors depending on the ordered or applied props
153+ // when reusing sliders with different min/max
154+ const min = this . minValue || DEFAULT_MIN ;
155+ const max = this . maxValue || DEFAULT_MAX ;
156+ this . nativeViewProtected . setValueFrom ( min ) ;
157+ this . nativeViewProtected . setValueTo ( max ) ;
158+ value = Math . max ( value , min ) ;
159+ value = Math . min ( value , max ) ;
156160 this . nativeViewProtected . setValue ( value ) ;
157161 }
158162 [ minValueProperty . setNative ] ( value ) {
0 commit comments