使用Ffltter Scaffold.Drawer时-是否可以让抽屉中的链接更改页面上的内容(Scaffold.Body)?

与在导航抽屉中设置链接类似,在Android中更改片段.

enter image description here

推荐答案

您只需与Drawer个项目交互即可更改感兴趣内容的state个,如下所示:

enter image description here

以下是本例的相关代码:

class TestPage extends StatefulWidget {
  @override
  _TestPageState createState() => new _TestPageState();
}

class _TestPageState extends State<TestPage> {
  String text = "Initial Text";
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        drawer: new Drawer(
          child: new ListView(
            children: <Widget>[
              new Container(child: new DrawerHeader(child: new Container())),
              new Container (
                child: new Column(
                    children: <Widget>[
                      new ListTile(leading: new Icon(Icons.info),
                          onTap:(){
                              setState((){
                                text = "info pressed";
                              });
                          }
                      ),
                      new ListTile(leading: new Icon(Icons.save),
                          onTap:(){
                            setState((){
                              text = "save pressed";
                            });
                          }
                      ),
                      new ListTile(leading: new Icon(Icons.settings),
                          onTap:(){
                            setState((){
                              text = "settings pressed";
                            });
                          }
                      ),

                    ]
                ),
              )
            ],
          ),
        ),
        appBar: new AppBar(title: new Text("Test Page"),),
        body: new Center(child: new Text((text)),
        ));
  }
}

Dart相关问答推荐

切换到可靠的零安全后简单分配中的可空性不匹配

Dart 扩展: don't access members with "this" unless avoiding shadowing

播放和暂停 Flutter 动画

flutter: 使用提供程序时,状态在热重载时丢失

AngularDart 可以直接路由到组件吗?

错误:不要从另一个包中导入实现文件

在dart polymer重复模板中获取索引

如何使用我的 dart 包私有而不在 pub dart lang 上显示?

如何在 Flutter DropDown 按钮中搜索

Flutter 屏幕尺寸计算

如何在 Flutter CustomPainter 中使用Bezier Curves绘制形状

如何在Dart中创建空Map

dart:web_gl: 渲染警告:texture bound to texture unit 0 is not renderable

Flutter:主题未应用于文本小部件

将ListTile图标向左对齐

如何提取dart/Flutter视频元数据

Dart 有小部件库吗?

如何在 URL 中获取查询参数

用于 dartlang 的 REPL

Dart 是否支持枚举?