Flutter Drawer перемещаться на одну страницу несколько раз

Добавить правило перезаписи URL в архив Web.config. Вы должны иметь [r0r] модуль перезаписи URL , уже установленный в IIS. Используйте следующее правило перезаписи как вдохновение для своего.

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Add trailing slash for some URLs" stopProcessing="true">
        <match url="^(.*(\.).+[^\/])$" />
          <conditions>
              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
              <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Redirect" url="{R:1}/" />
      </rule>
    </rules>
    </rewrite>
</system.webServer>

</configuration> 
1
задан yoonhok 18 March 2019 в 17:12
поделиться

1 ответ

Согласно вашему коду, вы инициализируете экран MyHomePage в верхней части текущего экрана (начиная с нового экрана). При навигации по ящикам вы должны заменить body: на экраны, которые вы хотите показать.

Пример:

Возьмите переменную типа

  int selectionScreen = 0;

, вы можете взять ее в соответствии со своими потребностями, я взял int. Теперь на основе этого вы можете выбрать, какой экран вы хотите показать.

new Scaffold(
        appBar: new AppBar(
          // here we display the title corresponding to the fragment
          // you can instead choose to have a static title
          title: new Text("Drawer navigation"),
        ),
        drawer: new Drawer(
          child: new Column(
            children: <Widget>[
              new ListTile(
                  leading: Icon(Icons.home),
                  title: new Text("Home"),
                  onTap: () {
                    setState(() {
                      selectionScreen = 0;
                    });
                    Navigator.pop(context);
                  })
            ],
          ),
        ),
        body: _getScreen(selectionScreen));

Теперь вы можете использовать _getScreen(), чтобы получить несколько экранов, так как вы добавляете больше ListTile в список ящиков.

_getScreen(int selection) {
    switch (selection) {
      case 0:
        return MyHomePage();

      case 1:
        return Screen2();
      default:
    }
  }

Это заменит экраны в существующем навигационном экране ящика.

Пожалуйста, подтвердите, если это была проблема, с которой вы столкнулись. Спасибо.

0
ответ дан Amol G 18 March 2019 в 17:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: