【发布时间】:2022-01-19 10:10:01
【问题描述】:
如何更改 AbsorbPointer 中多个小部件的外观?我知道使用它绘制的 AbsorbPointer 像往常一样是儿童。但是,根据某些条件,小部件是否有可能看起来像它们被禁用一样。 提前感谢您的帮助。
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
bool isDisabled = false;
bool isSwitched = false;
double _value = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
children: [
Switch(
value: isDisabled,
onChanged: (check) {
setState(() {
isDisabled = check;
});
}),
const SizedBox(
height: 40,
),
AbsorbPointer(
absorbing: !isDisabled,
child: Column(
children: [
Switch(
onChanged: (value) {
setState(() {
isSwitched = value;
});
},
value: isSwitched),
Slider(
min: 0.0,
max: 100.0,
value: _value,
onChanged: (value) {
setState(() {
_value = value;
});
},
),
ElevatedButton(
onPressed: () {},
child: const Text('BUTTON'),
)
],
),
),
],
)),
);
}
}
【问题讨论】:
-
你可以使用
final absorber = context.findAncestorRenderObjectOfType<RenderAbsorbPointer>(); print(absorber?.absorbing); -
@pskink 感谢您的快速回复。我不明白我怎么能用这个?!?!
-
在子小部件中使用该代码来查看是否有父小部件
AbsorbPointer小部件
标签: flutter