在Flutter中自定义导航路线小部件

时间:2019-07-02 05:16:12

标签: flutter dart

BottomNavigationBar中有一个widget,当我想在其中一个widget项中显示一个新的Navigator时,它会在我的屏幕上显示一个新屏幕最后widget

如何用BottomNavigationBar的项目替换新的小部件?

主窗口小部件状态:

class _MainWidgetState extends State<MainWidget> {

  int _currentIndex = 0;
  final List<Widget> _children = [
    HomeWidget(title: AppConstants.appName),
    ExerciseWidget(title: AppConstants.exercise),
    ProfileWidget(title: AppConstants.profile),
  ];
  .
  .

个人资料小部件状态:

class _ProfileWidgetState extends State<ProfileWidget> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.settings),
          onPressed: () {
            ViewUtils.openWidget(context, SettingWidget());
          },
        ),
      ),
    );
  }

openWidget在ViewUtils中:

static void openWidget(BuildContext context, Widget widget) {
    Navigator.of(context).push(
        MaterialPageRoute(
            builder: (context) => widget
        ),
    );
}

我需要Navigator在Android SettingWidget中像SupportFragmentManager一样显示我的getSupportFragmentManager().beginTransaction().replace(..)

我该怎么做?

更多信息

我有一个将pushAndRemoveUntilModalRoute.withName('/main');一起使用的Splash Widget,而Main Widget使用某些项目创建了BottomNavigationBar

在其中之一中,我单击设置按钮,其中显示了一个新的小部件,该显示发生在Navigator.of(context).pushNavigator.of(context).pushReplacement上。

这两个选项均在主窗口小部件上显示了我的新窗口小部件,而不替换为BottomNavigationBar中的其中一个项目。

0 个答案:

没有答案