一旦构建了屏幕,然后经过某种逻辑后我就需要更改AppBar标题,而无需再次执行build()方法。该怎么做?
答案 0 :(得分:1)
您可以在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,
),
),
);
}
}
答案 1 :(得分:1)
在您的州立课堂上写
String title_string = "your_initial_title";
在您的应用栏中,输入属性:
title: Text(title_string)
现在,只要您想更改标题,就写:
setState((){
title_string = "your_new_title";
});
答案 2 :(得分:-2)
这对我有用
由Kotlin用户使用
(requireActivity() as MainActivity).supportActionBar?.title = "New title"
对于Java,请使用此
(( MainActivity) requireActivity()).getSupportActionBar().setTitle("New title");