Flutter 颤振-OnTap在InkWell()和GestureDetector()函数中不起作用
根据需要输出屏幕。 但是,当我按下屏幕上的某个位置时,onTap在InkWell()和GestureDetector()函数中不起作用 即使我使用InkWell()函数而不是GestureDetector()函数,OnTap也无法工作Flutter 颤振-OnTap在InkWell()和GestureDetector()函数中不起作用,flutter,flutter-layout,flutter-widget,Flutter,Flutter Layout,Flutter Widget,根据需要输出屏幕。 但是,当我按下屏幕上的某个位置时,onTap在InkWell()和GestureDetector()函数中不起作用 即使我使用InkWell()函数而不是GestureDetector()函数,OnTap也无法工作 class\u MyHomePageState扩展状态{ @凌驾 小部件构建(构建上下文){ 回归未来建设者( 未来:非零时(流周期性(持续时间:100微秒), (x) =>MediaQuery.of(context.size.width)), 生成器:(上下文,
class\u MyHomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
回归未来建设者(
未来:非零时(流周期性(持续时间:100微秒),
(x) =>MediaQuery.of(context.size.width)),
生成器:(上下文,快照){
if(snapshot.hasData){
Size Size=MediaQuery.of(context).Size;
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:专栏(
儿童:[
墨水池(
子:容器(
装饰:盒子装饰(
颜色:常量颜色(0xff7c94b6),
边界:边界(
颜色:颜色,黑色,
宽度:8,
),
边界半径:边界半径。圆形(12),
),
填充:边缘设置。全部(32),
孩子:排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
图标(图标、购物车、夏普),
文本(“文本1”),
]),
),
onTap:(){
印刷(“我是墨水瓶”);
},
),
],
),
);
}否则{
返回循环ProgressIndicator();
}
});
}
//忽略:缺少返回
未来whenNotZero(流源)异步{
等待(源中的双值){
如果(值>0){
返回值;
}
}
}
}
请指教
Alex Hwang我已经测试了你的代码,似乎工作正常?你测试得怎么样?我也测试了你的代码,效果很好。我已经测试了你的代码,看起来还可以吗?你测试得怎么样?我也测试了你的代码,效果很好。
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return FutureBuilder<double>(
future: whenNotZero(Stream<double>.periodic(Duration(microseconds: 100),
(x) => MediaQuery.of(context).size.width)),
builder: (context, snapshot) {
if (snapshot.hasData) {
Size size = MediaQuery.of(context).size;
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Column(
children: [
InkWell(
child: Container(
decoration: BoxDecoration(
color: const Color(0xff7c94b6),
border: Border.all(
color: Colors.black,
width: 8,
),
borderRadius: BorderRadius.circular(12),
),
padding: EdgeInsets.all(32),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.shopping_cart_sharp),
Text("Text1"),
]),
),
onTap: () {
print("I am InkWell");
},
),
],
),
);
} else {
return CircularProgressIndicator();
}
});
}
// ignore: missing_return
Future<double> whenNotZero(Stream<double> source) async {
await for (double value in source) {
if (value > 0) {
return value;
}
}
}
}