如何在颤动网络中动态更改App标题? [英] How to dynamically change the App Title in Flutter Web?
本文介绍了如何在颤动网络中动态更改App标题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Web应用程序通常在选项卡的标题中反映当前显示的内容。
将title
parameter提供给MaterialApp
或WidgetsApp
意味着如果不重建整个树就无法更改,即在顶层调用setState
,其中我返回我的MaterialApp
。
MaterialApp(
title: 'Web app title',
...,
)
我希望能够在应用程序中的随时随地更改应用程序标题。我该怎么做?
推荐答案
颤动中的动态应用程序标题
应用标题可以在所有平台上使用SystemChrome.setApplicationSwitcherDescription
动态更改:
@override
Widget build(BuildContext context) {
SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription(
label: 'Dynamic web app title',
primaryColor: Theme.of(context).primaryColor.value,
));
return Container(...);
}
SystemChrome
在import 'package:flutter/services.dart';
中可用,并且您希望在build
方法中调用setApplicationSwitcherDescription
。
Title
也是这样做的(参见source code),这是WidgetsApp
、MaterialApp
等使用的小部件。
因此,您也可以使用Title
小部件,而不是自己访问SystemChrome
:
@override
Widget build(Context context) {
return Title(
label: 'Dynamic app title',
primaryColor: Theme.of(context).primaryColor,
child: ..,
);
}
label
label
参数非常简单:它精确地映射到MaterialApp
中的title
和String
中的内容。
primaryColor
primaryColor
将确定系统可能在应用程序切换器中使用的颜色,例如Android上最近的标题栏颜色。这是
int
而不是Color
的,因此您需要调用Color.value
将您的原色转换为整数。
干扰其他Title
%s
您可能会问自己,在MaterialApp
上设置title
属性时,调用setApplicationSwitcherDescription
或插入Title
小部件是否会导致任何问题。答案是:不是,因为树中最下面的小部件将设置标题。实际上,即使整个应用重建,您的
setApplicationSwitcherDescription
也将在MaterialApp
之后被调用,假设您是在子级中调用它,因此您将覆盖MaterialApp
标题。
这篇关于如何在颤动网络中动态更改App标题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文