在android中,每个片段都具有重写onCreateOptionsMenu的功能,从而可以在每个片段中添加单独的选项菜单。当应用栏对应用程序通用时,如何在从抽屉中更改页面时用颤动进行操作
答案 0 :(得分:2)
您可以在每个屏幕中添加AppBar。
class SDF extends StatefulWidget {
@override
_SDFState createState() => _SDFState();
}
class _SDFState extends State<SDF> {
int body = 0;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text("I Am AppBar"),
actions: getActions(body),
),
body: getBody(body), //here you can add your body
drawer: Drawer(
child: Column(
children: <Widget>[
RaisedButton(
onPressed: () {
setState(() {
body = 0;
});
},
child: Text("Home"),
),
RaisedButton(
onPressed: () {
setState(() {
body = 1;
});
},
child: Text("Settings"),
),
],
),
),
);
}
getBody(int body) {
switch (body) {
case 0:
return Container(); // Home Screen
case 1:
return Container(); // Settings Screen
}
}
getActions(int body) {
switch (body) {
case 0:
return [
Icon(Icons.settings),
Icon(Icons.home),
]; // Home Screen
case 1:
return [
Icon(Icons.home),
Icon(Icons.settings),
]; // Settings Screen
}
}
}
答案 1 :(得分:0)
在构建 AppBar
时添加 actions
。在页面的 State
对象中执行此操作,并使用该状态(也控制您的主体)来控制您的操作创建。使用例如IconButton
的列表:
// We're withing the PageState here. e.g.
// class MyPageState extends State<MyStateObject> {
Widget createAppBar() {
return AppBar(
actions: createAppBarActions()
);
}
List<Widget> createAppBarActions() {
// use your app state here to create the actions you need
// use if / else or switch / case for the states
return [
IconButton(
icon: Icon(Icons.share),
onPressed : onSharePressed,
),
];
}
void onSharePressed() {
// execute the action here
}
如果您使用上述 material
包,请不要忘记导入 Icons
。
import 'package:flutter/material.dart';
答案 2 :(得分:0)
flutter 的丰富之处在于您不必编写许多属性,例如 html、css 之类的很多东西
flutter 使用一个属性提供了简单的方法,例如下面的示例
在 Scaffold 下只需添加此代码
appBar: AppBar(
title: Text("Action Demo"),
actions: <Widget>[
IconButton(
icon: Icon(
Icons.settings,
color: Colors.white,
),
onPressed: () {
// do something
},
)
],
),