我在行中将InkWell添加为小部件,但这会引发错误:
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building InkWell(gestures: [tap], clipped to BoxShape.rectangle,
flutter: dirty, state: _InkResponseState<InkResponse>#0e6c5):
flutter: No Material widget found.
flutter: InkWell widgets require a Material widget ancestor.
这是我的代码:
Container(
color: Colors.red,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
InkWell(
onTap: (){
//Forgot password Tapped
},
child: Text(Constants.forgotPassword),),
],
),
答案 0 :(得分:3)
用脚手架包裹InkWell类,然后问题就解决了。
答案 1 :(得分:2)
Inwell类将始终与材料类一起使用
请尝试以下代码。
代码:将InkWell类与材料类包装起来
Material(
child: InkWell(
onTap: (){
//Forgot password Tapped
},
child: Text(Constants.forgotPassword),),
),
谢谢
答案 2 :(得分:0)
没有说Material
应该被添加为父亲。
如果它是StatelessWidget
,而您按下该页面,他会自动希望它是小部件的父级,例如Scaffold
这也发生在我身上,最后Flutter中的许多组件已经扩展了Material
,所以问题可能会更快。
答案 3 :(得分:0)
有两种方法可以解决上述问题。
用InkWell
替换GestureDetector
GestureDetector(
onTap: () {
},);
用 InkWell
包裹 Material
,因为 InkWell
需要 Material
小部件包裹
InkWell(
onTap: () {
},);
注意:要引入 Material 小部件,您可以直接包含一个小部件,也可以使用包含 Material 本身的小部件,例如卡片、对话框、抽屉或脚手架。< /strong>