【发布时间】:2018-12-12 19:45:50
【问题描述】:
我确实想在我的底部工作表中实现一个手势检测器,当它调用onTapDown 和GestureDetector 的onTapCancel 函数时,它应该改变容器的颜色。但是该功能没有改变任何东西。我还将下面的代码放在StatefulWidget 中,这样我就可以调用setState((){})。
这是我的代码:
bool enabled = false;
return InkWell(
child: Container(
child: Row(
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 16.0, bottom: 16.0, left: 30.0),
),
Text(
text,
style: TextStyle(
color: (enabled
? textColor
: Colors.black54
),
fontWeight: FontWeight.bold
),
)
],
),
decoration: BoxDecoration(
color: (enabled
? background
: Colors.transparent
)
),
),
onTapDown: (TapDownDetails details){
setState(() {
enabled = true;
});
},
onTapCancel: (){
setState(() {
enabled = false;
});
},
onTap: (){
String r_value;
if(text == sheetText[0]){
r_value = "delete";
} else if(text == sheetText[1]){
r_value = "edit";
} else if(text == sheetText[2]){
r_value = "notification";
} else {
return;
}
Navigator.pop(context, r_value);
},
);
希望有人能帮助我。
【问题讨论】:
-
enabled是您的State类中的一个字段吗? -
只是一个布尔值来控制容器是否被按下
-
bool enabled是您的State类中的字段吗? -
不,它不是我的状态类中的字段
-
所以让它成为你
State类中的一个字段