Почему между вложенным навигатором есть тень? - PullRequest
0 голосов
/ 24 ноября 2018

Когда я использую навигатор, вложенный в MaterialApp, который содержит навигатор, появляется тень, как показано на следующем рисунке.

Почему?Как удалить эту тень?

enter image description here

Мой код здесь:

import 'package:flutter/material.dart';

void main() => runApp(NavigatorNested());

class NavigatorNested extends StatefulWidget {
    @override
    NavigatorNestedState createState() => NavigatorNestedState();
}

class NavigatorNestedState extends State<NavigatorNested> {
    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            initialRoute: 'hpme',
            title: 'test',
            theme: ThemeData(
                primarySwatch: Colors.blue,
            ),
            home: Scaffold(
                appBar: AppBar(
                    title: Text('helle world'),
                ),
                body: Container(
                        margin: EdgeInsets.symmetric(vertical: 48, horizontal: 24),
                        child: Navigator(
                        onGenerateRoute: (settings) {
                            return MaterialPageRoute<dynamic>(
                                settings: settings,
                                builder: (context) {
                                return Text('helle world');
                            });
                        },
                        onUnknownRoute: (settings) {
                            return MaterialPageRoute<dynamic>(
                                settings: settings,
                                builder: (context) {
                                return Text('helle world');
                            });
                        },
                        initialRoute: "home",
                    ),
                ),
            ),
        );
    }
}

Если я использую Text('hello') для замены Navigator, работает товар.Это ошибка во флатрере?

1 Ответ

0 голосов
/ 24 ноября 2018

MaterialPageRoute сам по себе является виджетом материала, поэтому он имеет высоту и тень.

Используйте вместо этого PageRouteBuilder , это пейджер, который не содержит эффекта материала.Хороший пример - в разделе «Пользовательский маршрут» документации Navigator .

Редактировать: извините, похоже, что пример в документации не вписывается в ваш сценарий.Вы можете использовать PageRouteBuilder следующим образом

Navigator(
    //...
    onGeneratedRoute: PageRouteBuilder(
        pageBuilder: //...
        transitionsBuilder: //There are some good examples about this transition animation on the web
    ),
    //...
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...