Xamarin.forms 选项卡页面selectedItem不';当以编程方式将tab更改为“中的tab”时,不进行更改;“更多”;

Xamarin.forms 选项卡页面selectedItem不';当以编程方式将tab更改为“中的tab”时,不进行更改;“更多”;,xamarin.forms,xamarin.android,tabbedpage,Xamarin.forms,Xamarin.android,Tabbedpage,我正在开发一个Xamarin表单应用程序,它有一个选项卡页面,有6个选项卡 <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:tabs="clr-namespace:TabbedPageIssue"

我正在开发一个Xamarin表单应用程序,它有一个选项卡页面,有6个选项卡

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:tabs="clr-namespace:TabbedPageIssue"
         xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
         android:TabbedPage.ToolbarPlacement="Bottom"
         android:TabbedPage.IsSwipePagingEnabled="False"
         android:TabbedPage.BarSelectedItemColor="#F79320"
         android:TabbedPage.BarItemColor="#B1B2B3"
         x:Class="TabbedPageIssue.MainPage">
 <tabs:Tab1 Title="Tab1"/>
 <tabs:Tab2 Title="Tab2"/>
 <tabs:Tab3 Title="Tab3"/>
 <tabs:Tab4 Title="Tab4"/>
 <tabs:Tab5 Title="Tab5"/>
 <tabs:Tab6 Title="Tab6"/>
</TabbedPage>
当我单击按钮更改选项卡时,视图会更改,但“更多”选项卡未被选中,如果我单击选项卡1,则选项卡5的视图不会消失


这似乎是TabbedPage的一个bug。每个人都有办法解决这个问题吗?

我能够重现这个问题。对于解决方法,可以使用Shell选项卡。对于最新版本的VS,当您创建选项卡式模板时,它使用的是Shell

Xaml:

<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms" 
   xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
   xmlns:local="clr-namespace:App3.Views"
   Title="App3"
   x:Class="App3.AppShell">   

<TabBar>

    <ShellContent Title="Tab1"   ContentTemplate="{DataTemplate  local:Page1}" />
    <ShellContent Title="Tab2"   ContentTemplate="{DataTemplate  local:Page2 }" />
    <ShellContent Title="Tab3"   ContentTemplate="{DataTemplate  local:Page3 }" />
    <ShellContent Title="Tab4"   ContentTemplate="{DataTemplate  local:Page4}" />
    <ShellContent Title="Tab5" Route="page5"   ContentTemplate="{DataTemplate  local:Page5 }" />
    <ShellContent Title="Tab6"  ContentTemplate="{DataTemplate  local:Page6 }" />

</TabBar>
</Shell>
输出:

<?xml version="1.0" encoding="UTF-8"?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms" 
   xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
   xmlns:local="clr-namespace:App3.Views"
   Title="App3"
   x:Class="App3.AppShell">   

<TabBar>

    <ShellContent Title="Tab1"   ContentTemplate="{DataTemplate  local:Page1}" />
    <ShellContent Title="Tab2"   ContentTemplate="{DataTemplate  local:Page2 }" />
    <ShellContent Title="Tab3"   ContentTemplate="{DataTemplate  local:Page3 }" />
    <ShellContent Title="Tab4"   ContentTemplate="{DataTemplate  local:Page4}" />
    <ShellContent Title="Tab5" Route="page5"   ContentTemplate="{DataTemplate  local:Page5 }" />
    <ShellContent Title="Tab6"  ContentTemplate="{DataTemplate  local:Page6 }" />

</TabBar>
</Shell>
 async void Button_Clicked(object sender, EventArgs e)
    {
        await Shell.Current.GoToAsync("//page5");//page5 is the route i set in xaml
    }