无法按下具有 Navigator.push 功能的 Flutter Button (GestureDetector)
Flutter Button (GestureDetector) with Navigator.push function cannot be pressed
我正在尝试使用 SizedBox 和 GestureDetector 作为父级将页面导航到注册屏幕。
这是以 Transform.translate 小部件开头的代码:
offset: Offset(117.0, 455.17),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SignUp()),
);
},
child: SizedBox(
width: 150.0,
child: Text(
'Sign Up',
style: GoogleFonts.poppins(
fontSize: 26,
color: const Color(0xff202020),
fontWeight: FontWeight.w600,
height: 0.9615384615384616,
),
textAlign: TextAlign.center,
),
),
)
),
我是 Flutter 的新手,所以如果需要更多代码或信息,请告诉我:)
如评论中所述,这是因为您的转换小部件。但是,查看您的代码,在我看来这不是您想要的小部件(如果我错了请纠正我)。
您似乎想做的是将您的子窗口小部件放置在 Stack
中。您不应该为此使用翻译小部件,而应该使用 Align
和 Positioned
小部件。小部件在父小部件中的位置,并且由于您的父小部件是一个堆栈,因此您可以将小部件放在彼此之上。
Transform.translate
小部件适用于其他情况,例如动画组件或移动视觉元素(例如,我用它来实现 InteractiveViewer
之前它存在),但是,它应该' 是默认选择并且有额外的复杂性。
我正在尝试使用 SizedBox 和 GestureDetector 作为父级将页面导航到注册屏幕。 这是以 Transform.translate 小部件开头的代码:
offset: Offset(117.0, 455.17),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SignUp()),
);
},
child: SizedBox(
width: 150.0,
child: Text(
'Sign Up',
style: GoogleFonts.poppins(
fontSize: 26,
color: const Color(0xff202020),
fontWeight: FontWeight.w600,
height: 0.9615384615384616,
),
textAlign: TextAlign.center,
),
),
)
),
我是 Flutter 的新手,所以如果需要更多代码或信息,请告诉我:)
如评论中所述,这是因为您的转换小部件。但是,查看您的代码,在我看来这不是您想要的小部件(如果我错了请纠正我)。
您似乎想做的是将您的子窗口小部件放置在 Stack
中。您不应该为此使用翻译小部件,而应该使用 Align
和 Positioned
小部件。小部件在父小部件中的位置,并且由于您的父小部件是一个堆栈,因此您可以将小部件放在彼此之上。
Transform.translate
小部件适用于其他情况,例如动画组件或移动视觉元素(例如,我用它来实现 InteractiveViewer
之前它存在),但是,它应该' 是默认选择并且有额外的复杂性。