Shell TitleView 无法填充布局

Shell TitleView cant populate Layouts

我们正在开发 MAUI 应用程序,但在标签页之间导航时遇到了问题。

我们有一个带有 TabBar 的 shell 应用程序,我们在里面定义了 5 个选项卡:

    <TabBar>
        <Tab Title="Home"
         Icon="homeicon.png">
            <ShellContent ContentTemplate="{DataTemplate Pages:FeedPage}" />
        </Tab>
        <Tab Title="Messages"
         Icon="messageicon.png">
            <ShellContent ContentTemplate="{DataTemplate Pages:MessagesPage}" />
         ...
    </TabBar>

我们还在其中一个选项卡 xaml 中定义了一个 Shell.TitleView,如下所示:

<Shell.TitleView>
        <Grid Padding="5" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>

        <ImageButton Grid.Column="2" Source="profileicon.png"
                   HorizontalOptions="CenterAndExpand"
                   VerticalOptions="CenterAndExpand"
                   Command="{Binding ProfileButtonTapped }" />
        <ImageButton Grid.Column="1" Source="coinicon.png"
                   ...
                   ...

    </Grid>
    </Shell.TitleView>

当我们尝试返回到定义了 Shell.TitleView 的选项卡时,我们的问题就出现了。我们得到的错误是:

Java.Lang.IllegalStateException: 'The specified child already has a parent. You must call removeView() on the child's parent first.'

标题视图上的 StackLayout 也会出现此错误...我们进行了一些挖掘,发现如果我们从 TitleView 中删除布局,错误就不会再发生,所以我们猜测它与某些事情有关有了它。

编辑 1:我每次切换标签时都会注意到这个输出

"Thread finished: #11 The thread 0xb has exited with code 0 (0x0). Thread started: #12 Thread finished: #10 The thread 0xa has exited with code 0 (0x0). [TabLayout] MODE_SCROLLABLE + GRAVITY_FILL is not supported, GRAVITY_START will be used instead"

不幸的是,这是 MAUI 本身的一个已知错误当从 Shell 选项卡 #4506 导航回到 Android 时,带有 TitleView 的页面在 Android 上崩溃