我像往常一样制作了Stack小部件,但墨水井小部件没有出现在蓝色Container的顶部.在这个实验中,我将其他小部件放在合适的位置,一切都正常.我做错什么了?以下是代码的一部分:

          Stack(
            children: [
            Container(height: 280, color: Colors.blue,),
            Row(
              children: [
                InkWell(
                  onTap: () {
                    Navigator.of(context).pushReplacement(
                        MaterialPageRoute(
                            builder: (context) =>
                                Mainpage()));
                  }, 
                  splashColor: Colors.brown.withOpacity(0.5),
                  child: Ink(
                    height: 48,
                    width: 48,
                    decoration: const BoxDecoration(
                      image: DecorationImage(
                        image:
                        AssetImage('assets/dagger.png'),
                        fit: BoxFit.cover,
                      ),
                    ),
                  ),
                ),
              ],
            ),

这里我将容器设置为透明的,您可以看到墨水井在那里,位于容器的下面:

Screenshot

推荐答案

您可以将InkWell包装到Positioned,并使用Stack设置位置,然后将InkWell包装为Material小部件.这是为了确保InkWell具有可以处理TAP事件的父级:

Stack(
  children: [
    Container(height: 280, color: Colors.blue,),
    Positioned(
      top: 0,
      left: 0,
      child: Material(
        color: Colors.transparent,
        child: InkWell(
          onTap: () {
            Navigator.of(context).pushReplacement(
              MaterialPageRoute(
                builder: (context) => Mainpage()
              )
            );
          }, 
          splashColor: Colors.brown.withOpacity(0.5),
          child: Ink(
            height: 48,
            width: 48,
            decoration: const BoxDecoration(
              image: DecorationImage(
                image: AssetImage('assets/dagger.png'),
                fit: BoxFit.cover,
              ),
            ),
          ),
        ),
      ),
    ),
  ],
),

快乐的编码...

Flutter相关问答推荐

SingleChildScrollView正在将Container的高度限制为子对象,尽管使用了Expanded Inside Row()

如何使用新的Riverpod语法将依赖传递给AsyncNotifier?

如何使文本表格域在抖动中变圆?

BaseInputfield和Textfield有什么不同?

为什么我的Flutter 动画过渡没有发生?

flutter Listview构建器溢出

Flutter中不使用Container是否可以做margin

我对 Flutter Apk 有疑问

Container 的 Flutter 背景图片不会出现

setState 方法有时有效,有时无效

Agora VideoCall 不显示远程视频网格

如何让小部件根据小部件的大小构建不同的布局?

为什么 appBar 小部件在 flutter 中不是常量

在 Dart 中使用隔离时访问外部范围内的变量

type '({bool growable}) => List' 不是类型转换中类型 'List' 的子类型

如何根据字符串值动态构建和显示小部件?

Flutter:当我通过 Transform.rotate 旋转水平 ListView 时,左右边缘被切断

如何在 flutter 中过滤 DateTime(intl)?

如何在dart中编写多个条件?

如何将所有行项目平等地放在一行中?Flutter