我的计算器应用程序中有多个具有框阴影属性的容器,以使其具有新的外观。 但是我想更改BoxShadow或在按下Container时将其完全删除。
我通过使用onPointerUp和onPointerUp属性来使用Listener类。 我已经达到了神经质外观,但是按下后无法改变其阴影。
这是我的代码:
bool buttonPressed =false;//false by default
// buttonPressed set to false when button is pressed
void _onPointerDown(PointerDownEvent event) {
setState(() {
buttonPressed = true;
});
}
//button pressed is true when button is released
void _onPointerUp(PointerUpEvent event){
setState(() {
buttonPressed = false;
});
}
return Listener(
child: Container(
decoration: BoxDecoration(
...
boxShadow: buttonPressed ? pressedShadow : unPressedShadow
),
child: Center(
child: Text(widget.buttonText,
style: GoogleFonts.roboto(
color: buttonColor,
fontSize: 40.0,
),
),
),
),
onPointerDown: _onPointerDown,
onPointerUp: _onPointerUp,
);
我已经在statefulWidget中完成了
答案 0 :(得分:0)
您必须使用手势检测器。我希望我能帮上忙,我是编程新手,和你有同样的问题,例如:
bool buttonpressed = false
return Listener(
child: Gesturedetector(onTap: () {
setState(() {
buttonpressed = val )}};
child: Container
decoration: BoxDecoration(
...
boxShadow: buttonPressed ? pressedShadow : unPressedShadow
),
child: Center(
child: Text(widget.buttonText,
style: GoogleFonts.roboto(
color: buttonColor,
fontSize: 40.0,
),
),
),
),