大家好。我开始学习颤振,我想做以下事情:我启动应用程序,我看到主屏幕。通过向右滑动,我可以调出抽屉面板,其中有一些菜单。选择菜单时,需要在当前的“Activity”(如果可以这样称呼它)中替换“body”标签内的数据。现在我有一个新的“活动”按钮所在的位置。如何实现只会改变“body”标签?
主要飞镖:
import 'package:flutter/material.dart';
import 'package:mg_by/App/mainScreen.dart';
void main() {
runApp(MaterialApp(
title: 'Приложение',
home: MainScreen(),
));
}
mainScreen.dart:
import 'package:flutter/material.dart';
import 'package:mg_by/App/Second.dart';
class MainScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey,
appBar: new AppBar(
leading: new Icon(Icons.menu),
title: new Text("Приложение"),
actions: <Widget>[
new IconButton(
icon: new Icon(Icons.shopping_cart),
onPressed: () {},
),
new IconButton(
icon: new Icon(Icons.monetization_on),
onPressed: () {},
)
],
),
body: new Container(
color: Colors.red,
),
// Этот виджет представляет собой DrawerLayout в Android, который выезжает из левой части Activity для отображения навигационных ссылок приложения.
drawer: new Drawer(
child: new ListView(
children: <Widget>[
new DrawerHeader(
child: new Text("Drawer Header"),
decoration: new BoxDecoration(
color: Colors.blue,
),
),
ListTile(
title: Text('Второй экран'),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
},
),
ListTile(
title: Text('Item 2'),
onTap: () {
// Update the state of the app
// ...
// Then close the drawer
Navigator.pop(context);
},
),
],
),
),
);
}
}
第二镖:
import 'package:flutter/material.dart';
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body:
Center(
child: RaisedButton(
onPressed: () {
Navigator.pop(context);
},
child: Text('Вернуться назад.'),
),
),
);
}
}
你有 StatelessWidget,但你想得到的只有在 Statefull 中才有可能。好吧,如果我理解正确的话……我正在学习flutter第三周,所以可能答案是错误的。