dart - 如何更新以背景作为主应用程序菜单的 Flutter 应用程序的布局

标签 dart flutter flutter-layout

我是 Flutter 的新手,所以请接受我对一个愚蠢问题的道歉(可能是愚蠢的)。我的问题是,如果为我的应用程序菜单实现背景,我是否能够用新屏幕更新任何特定屏幕。例如,如果我在 android 上有一个带有背景的应用程序主屏幕,在单击菜单后我会显示一个片段,并且在用户与它进行一些交互之后,我会根据设计显示不同的片段和应用程序流。我的问题是我会在 Flutter 中做什么来更新屏幕而不是使用 MaterialPageRoute 来更改整个屏幕。

最佳答案

如果您不想使用 Navigator,您可以使用 PageView 小部件。

PageController _pageController;
int _page = 0; // initial page index

@override
void initState() {
  super.initState();
  _pageController = PageController(keepPage: true);
}

@override
void dispose() {
  _pageController.dispose();
  super.dispose();
}

void onPageChanged(int value) {
  setState(() {
    this._page = value;
  });
}

void go(int index) {
  _pageController.jumpToPage(index); //this will change the current page in view.
}

然后转到您的背景小部件并进行如下修改。

backLayer: Container(
  color: Colors.blue,
  child: ListView(
    children: <Widget>[
      ListTile(
        title: Text("Screen two"),
        onTap: () {
          go(1); //page index
        },
      ),
      ListTile(
        title: Text("Screen three"),
        onTap: () {
          go(2);
        },
      )
    ],
  ),
),


frontLayer: Container(
  color: Colors.white,
  child: PageView(
    onPageChanged: onPageChanged, //page changed function
    controller: _pageController, //controller
    physics: NeverScrollableScrollPhysics(), //disable swipe
    children: <Widget>[
      HelloScreen(), //put your screens here.
      ScreenTwo(),
      ScreenThree(),
    ],
  ),
),

关于dart - 如何更新以背景作为主应用程序菜单的 Flutter 应用程序的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54179297/

相关文章:

flutter - 如何在电话号码前设置国家/地区代码?

flutter - Flutter如何动态获取页面和Listview.Builder的高度?

flutter - 使用 ListTile() 将从 Api 加载的图像排列到 Flutter 中的两列

dart - 如何在 Flutter 应用程序启动时设置数据库?

firebase - 如何为Map <String,dynamic>类型的映射添加值?

flutter - 使用 dart 中的按钮更改 boolean 状态

flutter - 在 Flutter 中删除后退按钮上的 OverLayEntry

flutter - 在 Flutter 中完成 "build"函数时是否有任何回调告诉我?

android - 如何设置 flutter togglebuttons 小部件的宽度

Dart 2 和 AngularDart 5 应用程序部署并在服务器端运行