xamarin.forms - 推入导航页面时导航丢失菜单
问题描述
我有一个如下所示的内容页面并显示,但我正在丢失我的汉堡菜单,因为我正在使用以下内容推送它。我在 xamrian 中使用标准的主详细信息应用程序。
所以我的主要问题是如何在不丢失汉堡菜单的情况下从后面的代码推送到内容页面?就像我使用推送一样
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:telerikGrid="clr-namespace:Telerik.XamarinForms.DataGrid;assembly=Telerik.XamarinForms.DataGrid"
xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
xmlns:telerikInput="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
x:Class="FuelStockApp.Views.StockScanning">
<ContentPage.Content>
<StackLayout>
<telerikInput:RadButton x:Name="btnTestScan" BackgroundColor="Blue" TextColor="White" Clicked="BtnTestScan_Clicked" Text="Test Scan" />
<telerikGrid:RadDataGrid x:Name="gridItems" SelectionMode="Single" ItemsSource="{Binding Boms}" AutoGenerateColumns="False" >
<telerikGrid:RadDataGrid.Columns>
<telerikGrid:DataGridTextColumn PropertyName="StockItemID" HeaderText="StockItem" />
<telerikGrid:DataGridTextColumn PropertyName="Name" HeaderText="Name" />
<telerikGrid:DataGridTextColumn PropertyName="Quantity" HeaderText="Quantity" />
<telerikGrid:DataGridTemplateColumn x:Name="Actions" HeaderText="Scan Item">
<telerikGrid:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate>
<telerikInput:RadButton
Grid.Row="0" Grid.Column="1" HeightRequest="40" Text="Scan Item" x:Name="btnScanItem" Margin="0, 2, 0, 0" VerticalOptions="StartAndExpand" HorizontalOptions="Center"
BackgroundColor="Black" TextColor="White" />
</DataTemplate>
</telerikGrid:DataGridTemplateColumn.CellContentTemplate>
</telerikGrid:DataGridTemplateColumn>
<telerikGrid:DataGridTemplateColumn x:Name="Edit" HeaderText="Edit Item">
<telerikGrid:DataGridTemplateColumn.CellContentTemplate>
<DataTemplate>
<telerikInput:RadButton
Grid.Row="0" Grid.Column="1" HeightRequest="40" Text="Edit Item" x:Name="btnScanItem" Margin="0, 2, 0, 0" VerticalOptions="StartAndExpand" HorizontalOptions="Center"
BackgroundColor="Black" TextColor="White" />
</DataTemplate>
</telerikGrid:DataGridTemplateColumn.CellContentTemplate>
</telerikGrid:DataGridTemplateColumn>
</telerikGrid:RadDataGrid.Columns>
</telerikGrid:RadDataGrid>
</StackLayout>
</ContentPage.Content>
</ContentPage>
在这里你可以看到我正在使用
private async void BtnFindBom_Clicked_1(object sender, EventArgs e)
{
string result = await dataTransFer.GetIsAliveState();
await App.Current.MainPage.Navigation.PushModalAsync(new StockScanning(txtBomId.Text));
}
显示我的主页正在设置。
public App()
{
InitializeComponent();
DependencyService.Register<MockDataStore>();
MainPage = new MainPage();
}
我的主页代码来自上面。
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:FuelStockApp.Views"
x:Class="FuelStockApp.Views.MainPage">
<MasterDetailPage.Master>
<views:MenuPage />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<NavigationPage.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="iOS" Value="tab_feed.png"/>
</OnPlatform>
</NavigationPage.Icon>
<x:Arguments>
<views:StockTransfer />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
解决方案
在这里,您使用模态导航,而不是分层.
根据 Microsoft 文档:Hierarchical Navigation,它说:
NavigationPage 类提供分层导航体验,用户可以根据需要在页面中向前和向后导航。
要导航到页面,需要在当前页面的 Navigation 属性上调用 PushAsync 方法。
因此,您必须使用PushModalAsync(...)
方法将代码更改为PushAsync(...)
.
推荐阅读
- javascript - 当在服务器上找不到图像时,在 lightbox2 中显示默认图像
- jquery - 在浏览器中返回页面时如何重置jquery添加的类
- matlab - 如何在Matlab中返回所有偶数条目的索引
- java - 如何在java中处理许多耗时的任务
- node.js - React 响应式媒体查询不变
- python - 比较来自不同数据帧的两个值并基于熊猫中的附加值
- idris - 为什么在 Idris 2 中保留了 `&`?它是干什么用的?
- reactjs - CRUD firestore React 函数 delete()
- xcode - xcode 你如何搜索要导入的内容
- c++ - 插入函数导致rubish数字