aks*_*lod 6 c# xaml xamarin.forms
当我处理项目的Tap事件时,一切正常ListView,但是当我在其中使用TabbedPage它时显示异常请提前解决此问题.
例外:iOS上不支持全局支持PushAsync,请使用NavigationPage.
这是Xaml代码:
<?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:local="clr-namespace:NavTest" x:Class="NavTest.NavTestPage" Title="Home">
<ContentPage.Content>
<StackLayout Orientation="Vertical" VerticalOptions="Center">
<Label Text="Welcome to Xamarin Forms!" VerticalOptions="Center" HorizontalOptions="Center" />
<!--<Button Text="Go to " BackgroundColor="Lime" VerticalOptions="Center" Clicked="Handle_Clicked" >
</Button>-->
<ListView x:Name="myListView" ItemSelected="Handle_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding}" VerticalOptions="Center" HorizontalOptions="Center" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
这是OnClick处理程序:
async void Handle_Clicked(object sender, System.EventArgs e)
{
await Navigation.PushAsync(new Page1());
}
Run Code Online (Sandbox Code Playgroud)
Ven*_*aju 12
仅在iOS中运行时会出现此错误.
在App.cs Rootpage(起始页)中给出如下
public App()
{
MainPage=new NavigationPage(new LoginPage());
}
Run Code Online (Sandbox Code Playgroud)
现在,我们可以在全球范围内使用PushAsyn()
您的以下位置可能有一些与此类似的代码App.xaml.cs:
public App()
{
InitializeComponent();
var tabs = new TabbedPage();
tabs.Children.Add(new NavTestPage() { Title = "Tab title" });
MainPage = tabs;
}
Run Code Online (Sandbox Code Playgroud)
您应该更改为:
public App()
{
InitializeComponent();
var tabs = new TabbedPage();
var page = new NavTestPage() { Title = "Page title" };
tabs.Children.Add(new NavigationPage(page) { Title = "Tab title" });
MainPage = tabs;
}
Run Code Online (Sandbox Code Playgroud)
通过包裹在 a 中,NavigationPage您可以选择将页面推送到导航堆栈上。ATabbedPage本身只是选项卡,每个选项卡只有 1 页。这应该给你一个像这样的结构:
TabbedPage
NavigationPage
ContentPage
NavigationPage
ContentPage
NavigationPage
ContentPage
Run Code Online (Sandbox Code Playgroud)
更新:
我想您所做的只是在 XAML 中更改ContentPage为。TabbedPage事情不是这样的TabbedPage。TabbedPage您可能应该首先阅读一下实际工作原理。
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/navigation/tabbed-page/
在您的情况下,您可能应该创建一个具有如下 XAML 的新页面:
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:NavTest"
x:Class="NavTest.MyTabbedPage">
<NavigationPage Title="NavTest">
<x:Arguments>
<local:NavTestPage />
</x:Arguments>
</NavigationPage>
</TabbedPage>
Run Code Online (Sandbox Code Playgroud)
将其设置MainPage为App.xaml.cs:
public App()
{
InitializeComponent();
MainPage = new MyTabbedPage();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5699 次 |
| 最近记录: |