在一个选项卡中,我有一个 TextFormField,而在另一个选项卡中只有一个文本列表。当我选择 Text 字段时,键盘已打开,然后我跳转到第二个 Tab 并且键盘仍然显示。我什至可以写作,当我回到 Tab 1 时,我明白了我为什么要打字。
您知道如何对第二个 Tab 执行操作以将焦点从文本字段中移出吗?
DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
title: Text('Manage Products'),
bottom: TabBar(tabs: <Widget>[
Tab(icon: Icon(Icons.create), text: 'Create Product'),
Tab(icon: Icon(Icons.list), text: 'My Products'),
]),
),
body: TabBarView(
children: <Widget>[
ProductEditPage(addProduct: addProduct),
ProductListPage(products, updateProduct),
],
)),
);
Run Code Online (Sandbox Code Playgroud)
解决代码
应用@nick.tdr 建议后,示例代码如下:
class _Test extends State<Test> with TickerProviderStateMixin {
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(vsync: this, length: 2);
_tabController.addListener(() {
if (_tabController.indexIsChanging) {
FocusScope.of(context).requestFocus(new FocusNode()); …Run Code Online (Sandbox Code Playgroud) 我试图找到问题的答案“如何正确编码 ThemeData 的折旧‘title’参数?” (我正在学习教程)。但是,我在其他主题的一些评论中找到了正确的答案。我将答案留在下面以供将来参考和轻松查找。
theme: new ThemeData(
primaryTextTheme: TextTheme(
title: TextStyle(
color: Colors.white,
))),
Run Code Online (Sandbox Code Playgroud)
如何使用主题通用更改AppBar的文本颜色,FAB的图标颜色?
eMarine 的回答:https ://stackoverflow.com/users/1584407/emarine