颤动滑块仅在用拇指条拖动时才滚动

问题描述 投票:0回答:1

在我的自定义窗口小部件中,有多个组件以及页面滚动。每当我不小心触摸附近的滑块时,它就会识别出触摸并将位置更改为相应的位置。我需要自定义行为,以便滑块仅在用拇指栏拖动时才更改。

我尝试在滑块顶部添加一个手势识别器,但提供了更改和重置值的闪烁效果。是否有可能使Slider除拖动外不对触摸做出反应?

 GestureDetector(
        onHorizontalDragUpdate: (updateDetails) {
          print("On onHorizontalDragUpdate called");
          setState(() {
            _diffLevel = updateDetails.globalPosition.distance;
          });
        },
        onTap: (() {
          setState(() {
            _diffLevel = _diffLevel;
          });
          print("On Tap called");
        }),
        child: Slider.adaptive(
              value: _diffLevel.toDouble(),
              activeColor: MyColors.appMediumBlueColor(),
              //inactiveColor: Colors.purple,
              onChanged: (double newValue) {
                setState(() {
                  _diffLevel = newValue;
                });
              },
              min: widget.minLevel,
              max: widget.maxLevel,
              divisions: widget.divisions,
              label: _diffLevel.toString(),
            ),
      )

预期结果:

Only Drag gesture should work

实际结果:

Tap gesture anywhere on slider bar reacts

flutter slider flutter-layout
1个回答
0
投票

我尚未分析您的代码,但是有没有理由不使用https://pub.dev/packages/flutter_range_slider吗?

© www.soinside.com 2019 - 2024. All rights reserved.