我正在使用从屏幕中心开始的小部件。我希望当用户拖动窗口小部件时,窗口小部件从中心移动到顶部,反之亦然。
我已经用手势检测器包装了我的小部件,还使用了随用户拖动而更改Y值的Transform小部件。
当用户拖动Y位置时,我正在使用值通知程序。小部件将按预期方式拖动。
问题是窗口小部件的滚动不平滑。我已经尝试过使用动画控制器,但是我不太确定该怎么适应。
有没有一种方法可以在小部件上使用滚动动画以使其平滑?
下面是我要在拖动时翻译的小部件:
Transform(
transform: Matrix4.translationValues(0, widget.verticalOffset, 0),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 30.0),
child: Container(
color: Theme.of(context).primaryColor,
child: GestureDetector(
onVerticalDragUpdate: widget.handleDragUpdate,
onVerticalDragEnd: _handleVerticalDragEnd,
child: ListView.builder(
controller: controller,
physics: _getScrollPhysics(context),
itemCount: widget.songs.length,
itemBuilder: (BuildContext context, int index) {
return buildSongRow(widget.songs[index]);
}
)
)
),
),
)
答案 0 :(得分:0)
如果您正在调试模式下运行,这可能是结果。为了确保动画能够按照您希望的那样平滑运行,那么您需要在配置文件模式下运行动画。