-
Notifications
You must be signed in to change notification settings - Fork 34
Closed
Description
初めまして!
タイトルにある不具合を確認しましたので、issueを立てさせていただきました。
概要
- SliderCellがスクロールで再利用された際に、再利用前のセルに設定されている値が再利用後のMinMaxに補正されてしまう
環境
- Unity2020 3.40f1
- v1.5.2
手順
- 画面に一度に表示される最大数以上のSliderCellを追加する
- 追加したSliderCellで画面が埋め尽くされている状態にする
- 2の状態から上などにスライドして、表示されていないSliderCellを表示する状態にして、セルが再利用される状態を作る
- 2の状態に戻し、再び表示されたセルを確認する
期待する結果
- セルの値がスライド前と変わらず変更されずに表示されること
実際の動作
- セルの値が再利用後の値で補正されてしまっている
2024-01-10.2.35.22.mov
原因
- この箇所でListenerを除去する前にslider.minValueとslider.maxValueに代入してしまっていることで、再利用前の値が範囲外だった場合に補正が入り、slider.onValueChangedが発火してしまっている
修正案
- 下記のように、Listenerが解除された後にslider.minValueとslider.maxValueに代入を行う
// Slider
slider.interactable = model.Interactable;
slider.onValueChanged.RemoveAllListeners();
slider.minValue = model.MinValue;
slider.maxValue = model.MaxValue;
slider.SetValueWithoutNotify(value);
Metadata
Metadata
Assignees
Labels
No labels