如何解决Flutter:当屏幕未最大化时,Tab 键在 Flutter 桌面中无法正常工作
我正在为 Flutter 桌面开发,并且遇到问题,因为当应用屏幕未最大化时,按 Tab 键不会在文本字段中循环。
我在 Gridview 中排列了 8 个文本字段,当应用程序屏幕最大化时,tab 键会按预期从左到右然后向下移动这些字段。当我减小屏幕尺寸时,tab 键仅在连续循环中循环 2 个字段。我怎样才能让它正常工作? 代码如图:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),);
}
}
class MyHomePage extends StatefulWidget {
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method,and use it to set our appbar title.
title: Text("Test App"),),body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child:Container(
height: 180,// width: MediaQuery.of(context).size.width * 0.9,child: GridView.count(
scrollDirection: Axis.vertical,crossAxisCount: 4,childAspectRatio: 5,children: [
buildColumn(context,txt: "A"),buildColumn(context,txt: "B"),txt: "C"),txt: "D"),txt: "E"),txt: "F"),txt: "G"),txt: "H"),])
)
)
);
}
Column buildColumn(BuildContext context,{txt}) {
return Column(children: [
Text(txt),Container(
height: MediaQuery.of(context).size.height * 0.04,width: 300,child:TextFormField(decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black12,width: 1.0),)
),]
);
}
}
解决方法
看起来是个错误,但可以通过添加 focusedBorder
(删除 enabledBorder
)来修复:
child: TextFormField(
decoration: InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black12,width: 1.0)),focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.green,),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。