我遇到的情况是这样的,我的点击事件范围只在文字上面起作用,但是我的GestureDetector明明包裹了Container,为什么点击Container别的地方不起作用,只点击Container才起作用。之前的代码是这样的:

Expanded(
  child: GestureDetector(
  onTap: () {
  if (widget.cancelClicklistener != null) {
       widget.cancelClicklistener();
   }
   Navigator.of(context).pop();
   },
   child: Container(
   height: 50.h,
   alignment: Alignment.center,
   child: Text('取消',
              style: TextStyle(
               color: Colors.grey, fontSize: FontSizeStyle.big),
                ),
              ),
            )),

只点击文字起作用,但是点击Container别的地方不起作用。最后找到问题了,需要给Container加一个decoration属性,点击事件范围就变大了,最后的代码如下:

Expanded(
  child: GestureDetector(
  onTap: () {
  if (widget.cancelClicklistener != null) {
        widget.cancelClicklistener();
      }
    Navigator.of(context).pop();
   },
   child: Container(
          height: 50.h,
          alignment: Alignment.center,
          decoration: BoxDecoration(
          borderRadius:
           BorderRadius.only(bottomLeft: Radius.circular(10.0)),
           color:  Colors.white,
           ),
           child: Text('取消',
                  style: TextStyle(
                  color: Colors.grey, fontSize: FontSizeStyle.big),
                ),
              ),
            )),

注意,新加了下面几行代码,这样,点击事件范围就变大了:

decoration: BoxDecoration(
                  borderRadius:
                  BorderRadius.only(bottomLeft: Radius.circular(10.0)),
                  color:  Colors.white,
                ),

刚从Android开发转过来,遇到好多”奇奇怪怪“的问题。😔

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐