Flutter 防止小部件树获得焦点

Flutter 防止小部件树获得焦点,flutter,flutter-layout,Flutter,Flutter Layout,有没有办法防止小部件树获得焦点 我想防止子列或任何嵌套子项(字段1、字段2)在不禁用字段的情况下获得焦点,字段3应该仍然是可聚焦的。如何实现 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Example'), ), body: Column( key: Key("Parent column"), crossAxis

有没有办法防止小部件树获得焦点

我想防止子列或任何嵌套子项(字段1、字段2)在不禁用字段的情况下获得焦点,字段3应该仍然是可聚焦的。如何实现

Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('Example'),
    ),
    body: Column(
      key: Key("Parent column"),
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Column(
          key: Key("Child column"),
          children: <Widget>[
            TextField(
              key: Key("Field 1"),
            ),
            TextField(
              key: Key("Field 2"),
            )
          ],
        ),
        TextField(
          key: Key("Field 3"),
        )
      ],
    ),
  );
}
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“示例”),
),
正文:专栏(
键:键(“父列”),
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
纵队(
键:键(“子列”),
儿童:[
文本字段(
键:键(“字段1”),
),
文本字段(
密钥:密钥(“字段2”),
)
],
),
文本字段(
密钥:密钥(“字段3”),
)
],
),
);
}

感谢@pskink的建议

这实际上是一个非常简单的实现:只需将小部件树包装在
IgnorePointer
shouldIgnore
是控制子列及其子列是否应获得任何触摸事件的变量

bool shouldIgnore = true;

Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text('Example'),
    ),
     body: Column(
      key: Key("Parent column"),
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        IgnorePointer(
          ignoring: shouldIgnore,
          child: Column(
            key: Key("Child column"),
            children: <Widget>[
              TextField(
                key: Key("Field 1"),
              ),
              TextField(
                key: Key("Field 2"),
              )
            ],
          ),
        ),
        TextField(
          key: Key("Field 3"),
        )
      ],
    ),
  );
}
bool shouldinogre=true;
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“示例”),
),
正文:专栏(
键:键(“父列”),
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
无知者(
忽略:应该忽略,
子:列(
键:键(“子列”),
儿童:[
文本字段(
键:键(“字段1”),
),
文本字段(
密钥:密钥(“字段2”),
)
],
),
),
文本字段(
密钥:密钥(“字段3”),
)
],
),
);
}

已尝试
忽略指针
/
吸收指针