构建屏幕后,在某些逻辑之后,我需要更改Appbar标题,而无需再次执行build()方法。如何做?
您可以在statefulwidget内调用setState()方法,然后更改Appbar的标题。这就是您可以做到的:
class HomePage extends StatefulWidget {
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String appBarTitle = "Title1";
void changeTitle(){
setState(() {
appBarTitle = appBarTitle == "Title1" ? "Title2" : "Title1";
});
}
@override
Widget build(BuildContext context) {
return Container(
child: Scaffold(
appBar: AppBar(
title: Text(appBarTitle),
),
floatingActionButton: FloatingActionButton(
onPressed: changeTitle,
),
),
);
}
}
在您的州类中写
String title_string = "your_initial_title";
在您的Appbar中写下属性:
title: Text(title_string)
现在,只要您想更改标题写作:
setState((){
title_string = "your_new_title";
});
这对我有用
使用Kotlin用户
使用它(requireActivity() as MainActivity).supportActionBar?.title = "New title"
和java使用此
(( MainActivity) requireActivity()).getSupportActionBar().setTitle("New title");