Flutter 颤振-OnTap在InkWell()和GestureDetector()函数中不起作用

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)), 生成器:(上下文,

根据需要输出屏幕。 但是,当我按下屏幕上的某个位置时,onTap在InkWell()和GestureDetector()函数中不起作用

即使我使用InkWell()函数而不是GestureDetector()函数,OnTap也无法工作

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;
          }
        }
      }
    }