RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 899371
Accepted
Leksor
Leksor
Asked:2020-10-29 19:21:25 +0000 UTC2020-10-29 19:21:25 +0000 UTC 2020-10-29 19:21:25 +0000 UTC

如何使颤动中的导航仅更改正文

  • 772

大家好。我开始学习颤振,我想做以下事情:我启动应用程序,我看到主屏幕。通过向右滑动,我可以调出抽屉面板,其中有一些菜单。选择菜单时,需要在当前的“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('Вернуться назад.'),
        ),
      ),
    );
  }
}
android
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Maks K. Maks
    2020-11-02T20:11:02Z2020-11-02T20:11:02Z

    你有 StatelessWidget,但你想得到的只有在 Statefull 中才有可能。好吧,如果我理解正确的话……我正在学习flutter第三周,所以可能答案是错误的。

    import 'package:flutter/material.dart';
    
    class MainScreen extends StatefulWidget {
      _MainScreen createState() => _MainScreen();
    }
    
    class _MainScreen extends State<MainScreen> {
      var page = 'main';
    
      _getMainScreen(page) {
        if (page == 'main') {
          return new Container(
            color: Colors.red,
          );
        } else {
          return new Container(
            color: Colors.red,
            child: Center(
              child: RaisedButton(
                onPressed: () {
                  setState(() {
                    this.page = 'main';
                  });
                },
                child: Text('Вернуться назад.'),
              ),
            ),
          );
        }
      }
    
      @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: _getMainScreen(page),
    
          // Этот виджет представляет собой 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: () {
                    setState(() {
                      page = 'second';
                    });
                  },
                ),
                ListTile(
                  title: Text('Item 2'),
                  onTap: () {
                    setState(() {
                      page = 'main';
                    });
                  },
                ),
              ],
            ),
          ),
        );
      }
    }
    
    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5