0
Page1
ページが表示されるときに、name()
関数を実行するにはどうすればよいですか?Flutter - ページが表示されたときに常に関数を実行します。
name()
が実行されていないバックボタンやAndroidの物理的なボタンをクリックして、私は
'go to Page1'
ボタンをクリックすると機能
name()
がある場合、私はすでに
Page2
内部
dispose()
を実行
Page2
に行く前に、以下のコードで
実行される。
Page1
が表示されている場合、常にname()
機能を実行するのに役立ちますか?
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
routes: <String, WidgetBuilder> {
'/page2': (BuildContext context) => new Page2(),
},
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String nameScreen;
String name() {
return 'foo1';
}
@override
void initState() {
super.initState();
this.nameScreen = name();
}
@override
void dispose() {
this.nameScreen = '';
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Page 1'),
backgroundColor: new Color(0xFF26C6DA),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: const Text('go to Page2'),
onPressed:() async {
dispose();
bool isLoggedIn = await Navigator.of(context).pushNamed('/page2');
if (isLoggedIn) {
setState((){
this.nameScreen = name();
});
}
},
),
new Text(
'$nameScreen',
),
],
),
),
);
}
}
class Page2 extends StatelessWidget{
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Page 2'),
backgroundColor: new Color(0xFFE57373)
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: const Text('go back to Page1'),
onPressed:() {
Navigator.pop(context, true);
}
),
],
),
),
);
}
}
、ユーザーは、Androidの物理的なボタンで戻ってきた場合にだけ機能していません。これを解決する方法はありますか? – rafaelcb21
問題を解決する方法の1つは、ユーザーが物理的なAndroidボタンを使用する場合に 'setState'の上に' if(result == null){result = "Android back button";} 'を追加したことです – rafaelcb21