我希望呈现一个无法移动的颤动滑块,这意味着我希望向滑块传递一个用户无法纯粹为UI可视化更改的初始值?
有没有人有经验将此滑块锁定到位?
感谢您的帮助。
答案 0 :(得分:2)
为其提供一个值,然后将onChanged:
属性设置为null。
onChanged: null
这将禁用滑块。
否则,您可以给max:
和min:
赋予相同的值。不过,在这种情况下,滑块不会变灰,而是保持为零。
答案 1 :(得分:1)
只需将AbsorbPointer包裹在滑块上,如下所示:
AbsorbPointer(
child: Slider(
onChanged: (value) => print(value),
min: 0,
max: 100,
divisions: 10,
value: 30,
),
)
答案 2 :(得分:0)
只需使用SliderTheme:
SliderTheme(data: SliderTheme.of(context).copyWith(
disabledThumbColor:
Theme.of(context).accentColor,
disabledActiveTrackColor:
Theme.of(context).accentColor),
child: Slider(
divisions: 10,
max: 100,
value: 10,
onChanged: null,
),
)
答案 3 :(得分:0)
为了使SliderTheme
影响禁用的滑块,您必须覆盖disabled
属性。
这是一个简单的例子:
SliderTheme(
data: SliderTheme.of(context).copyWith(
disabledActiveTrackColor: Colors.red[700],
disabledInactiveTrackColor: Colors.red[100],
disabledThumbColor: Colors.redAccent,
),
child: Slider(
value: 0.2,
onChanged: null,
),
)
答案 4 :(得分:0)
同样更详细:
var _onChanged;
if (someVariable) {
_onChanged = (value) => print(value);
}
child: Slider(
onChanged: _onChanged,
min: 0,
max: 100,
divisions: 10,
value: 30,
),