如果您将默认的Material脚手架与默认的应用程序栏一起使用,并使用“话语提示”打开您的应用程序,则可访问性焦点会自动移至应用程序栏中的第一项(通常是“后退”按钮)。
我希望我的应用栏比默认值高,所以我创建了一个自定义应用栏,并将其传递到支架上:
class CustomAppbar extends StatelessWidget implements PreferredSizeWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 120,
child: Semantics(
focused: true,
child: RaisedButton(
child: Text('Test'),
onPressed: () {},
),
),
);
}
@override
Size get preferredSize => Size.fromHeight(120);
}
Widget build(BuildContext context) {
return Scaffold(
appBar: CustomAppbar(),
body: SafeArea(
child: Stack(children: <Widget>[
Column(children: <Widget>[
_buildContent(),
]),
]),
),
);
}
问题是,如果我不使用默认的AppBar,则无法将焦点移到第一个按钮上,即使我使用语义包装也是如此。
默认的脚手架如何处理自动聚焦?我已经在代码中搜索,找不到它。
PreferredSize
,我们可以在其中重写其高度和宽度,我以此方式解决了我的问题