flutter使用GestureDetector监听界面是否rebuild
Flutter中的GestureDetector不能直接监听界面是否rebuild,但是它可以通过onTap回调来实现类似的功能。当用户点击widget时,onTap回调就会被触发。你可以在回调函数里更新状态,这样就能触发界面重新渲染。
例如,以下代码展示了一个简单的GestureDetector部件,当用户点击该部件时,它会更新一个状态变量,从而触发界面重新渲染:
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
bool _isTapped = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
setState(() {
_isTapped = true;
});
},
child: Container(
width: 100,
height: 100,
color: _isTapped ? Colors.blue : Colors.red,
),
);
}
}
在这个例子中,当用户点击Container时,GestureDetector的onTap回调会被触发,更新_isTapped变量的值。在build方法里,我们使用这个变量来决定Container的颜色。如果_isTapped为true,Container的颜色是蓝色;否则,它是红色。这样,当用户点击Container时,界面就会重新渲染,改变Container的颜色。
原文地址: http://www.cveoy.top/t/topic/bd73 著作权归作者所有。请勿转载和采集!