Добавить правило перезаписи 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>
Согласно вашему коду, вы инициализируете экран 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:
}
}
Это заменит экраны в существующем навигационном экране ящика.
Пожалуйста, подтвердите, если это была проблема, с которой вы столкнулись. Спасибо.