我有一个问题,我没有NavigationBar
在我的页面上,这只是发生后,我实现了标签页在.NET MAUI与棱镜MVVM框架。任何帮助是非常感谢。
显示的所有页面及其视图模型都已注册为服务。
标签页导航代码:
await _navigationService.NavigateAsync($"{nameof(HomePage)}?{KnownNavigationParameters.SelectedTab}={nameof(DashboardPage)}");
标签页:
<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage
x:Class="TestApp.Views.HomePage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:android="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls"
xmlns:local="clr-namespace:TestApp.Views;assembly=TestApp"
android:TabbedPage.ToolbarPlacement="Bottom"
AutomationId="home_page">
<local:DashboardPage x:Name="dashboardPage" Title="Home" IconImageSource="icon_home_o" />
<local:CommentListPage x:Name="commentListPage" Title="Comments" IconImageSource="icon_comment_o" />
<local:MorePage x:Name="morePage" Title="More" IconImageSource="icon_ellipsis_o" />
</TabbedPage>
Dashboard页面视图模型(代码导航到另一个新视图):
//When the navigation happens, this page has NO navigation bar and this NO BACK BUTTON which is a problem
await _navigationService.NavigateAsync(nameof(TestListPage))
TestListPage初始化:
public partial class TestListPage : ContentPage
{
public TestListPage()
{
InitializeComponent();
//nav stack has a count of 0
var test = Navigation.NavigationStack;
}
protected override void OnAppearing()
{
base.OnAppearing();
//nav stack has a count of 0
var test = Navigation.NavigationStack;
}
}
1条答案
按热度按时间f4t66c6m1#
我有一个问题,我的页面上没有
NavigationBar
,这只是在我用Prism MVVM框架在.NET MAUI中实现Tabbed页面后发生的。我测试了代码,和你描述的一样。你可以report it to GitHub。另外,你必须使用Prism MVVM框架?CommunityToolkit.Mvvm能实现你的需求吗?
关于导航,有一些提示:
虽然
NavigationPage
可以放在TabbedPage
中,但不建议将TabbedPage
放在NavigationPage
中。TabbedPage
与.NET MAUI Shell应用程序不兼容,如果您尝试在Shell应用程序中使用TabbedPage
,将引发异常。更多详情请参考官方文档:TabbedPage。
更新:
根据史蒂夫所说:
我做的一个变通方法是不使用
NavigateAsync(nameof(TestListPage))
,而是使用NavigateAsync($"/{nameof(NavigationPage)}/{nameof(HomePage)}/{nameof(TestListPage)}")
。它可以解决问题。