[массовое редактирование]
Привет, мне нужна ваша помощь, чтобы понять причину поведения этого виджета:
class Bottom extends StatefulWidget {
@override
_Bottom createState() => _Bottom();
}
class _Bottom extends State<Bottom> with SingleTickerProviderStateMixin {
AnimationController _controller;
double get maxHeight => MediaQuery.of(context).size.height;
double get headerTopMargin =>
lerp(20, 20 + MediaQuery.of(context).padding.top);
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: Duration(milliseconds: 600),
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
double lerp(double min, double max) =>
lerpDouble(min, max, _controller.value);
Widget get _singleCard => Card(
color: Colors.white,
child: Padding(padding: EdgeInsets.all(20),),
);
List<Widget> _hundredCards(){
List<Widget> _list = [];
for (int i = 0; i<100; i++) _list.add(_singleCard);
return _list;
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _controller,
builder: (context, child) {
double _height = lerp(minHeight, maxHeight);
return Positioned(
height: _height,
left: 0,
right: 0,
bottom: 0,
child: GestureDetector(
onTap: _toggle,
onVerticalDragUpdate: _handleDragUpdate,
onVerticalDragEnd: _handleDragEnd,
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 32),
decoration: BoxDecoration(
color: Colors.deepPurpleAccent,
borderRadius:
const BorderRadius.vertical(top: Radius.circular(32)),
),
child: SingleChildScrollView(
child: Column(
children:
// SCROLL PROPERLY
<Widget>[
_singleCard,
],
//==> PROBLEM HERE!!!<===
// DOESN'T SCOLL, BUT THE LIST IS SCROLLABLE INSTEAD
//_hundredCards(), <=== here
),
),
),
),
);
},
);
}
void _toggle() {
final bool isOpen = _controller.status == AnimationStatus.completed;
_controller.fling(velocity: isOpen ? -2 : 2);
}
void _handleDragUpdate(DragUpdateDetails details) {
_controller.value -= details.primaryDelta / maxHeight;
}
void _handleDragEnd(DragEndDetails details) {
if (_controller.isAnimating ||
_controller.status == AnimationStatus.completed) return;
final double flingVelocity =
details.velocity.pixelsPerSecond.dy / maxHeight;
if (flingVelocity < 0.0)
_controller.fling(velocity: math.max(2.0, -flingVelocity));
else if (flingVelocity > 0.0)
_controller.fling(velocity: math.min(-2.0, -flingVelocity));
else
_controller.fling(velocity: _controller.value < 0.5 ? -2.0 : 2.0);
}
}
Я хотел бы иметь прокручиваемый список ВНУТРИ позиционированногокоторый содержит детектор жестов, контейнер и т. д.
Если я помещу детектор жестов в контейнер, это не устраивает, есть идеи обойтись?
заранее спасибо