我通过点击<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="progress progress-bar-vertical" style=" transform:rotate(180deg)">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="height: 60%;">
<span class="sr-only">60% Complete</span>
</div>
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="10" aria-valuemin="0" aria-valuemax="100" style="height: 10%;">
<span class="sr-only">10% Complete</span>
</div>
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="height: 20%;">
<span class="sr-only">20% Complete</span>
</div>
</div>
使用在屏幕上填充蓝色的动画。再次点击FloatingActionButton
蓝色退出屏幕。如下面的gif:
我在动画中添加FloatingActionButton
,以便在屏幕填充蓝色后,点击蓝色时,它会退出屏幕。就像我再次点击GestureDetector
一样。
但是,FloatingActionButton
未检测到屏幕上蓝色任何部分的任何点按,即使我将其放入GestureDetector
onTap: (){print("test")}
也未检测到。
有人可以帮助我,通过点击蓝色再次运行GestureDetector
功能吗?
_up()
答案 0 :(得分:1)
GestureDetector
仅适用于小部件。 CustomPaint
不是小工具,因此有必要将child
属性CustomPaint
放在小工具中,例如Container
。
以下是CustomPaint
:
...
child: new CustomPaint(
painter: new Sky(_width, _height * _animation.value),
child: new Container(
height: _isRotated ? 0.0 : _height * _animation.value,
width: _isRotated ? 0.0 : _width,
),
),
...
答案 1 :(得分:1)
已经有适合你的东西:脚手架。
使用Scaffold.of(context).showBottomSheet
它可以在一行代码中完成您所需的一切。
您还可以使用showModalBottomSheet
(似乎有最大高度限制)。
void main() {
runApp(new MaterialApp(
home: new Test(),
));
}
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("data"),
),
floatingActionButton: new MyButton(),
);
}
}
class MyButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new FloatingActionButton(
backgroundColor: Colors.red,
onPressed: () => onPressed(context),
child: new Icon(Icons.plus_one),
);
}
void onPressed(BuildContext context) {
Scaffold.of(context).showBottomSheet((context) {
return new Container(
color: Colors.cyan,
);
});
}
}