将控件上方/上方添加到Shell App栏中,而不对其进行更改

问题描述

我正在尝试在Label应用栏(导航栏)上方添加一个可以作为任何控件的层(例如,让我们使用Shell),以便在所有页面上都可用。为此,我尝试使用TitleView,这显然不能满足我的要求(请参见下面的屏幕截图)。

尝试

Page1.xaml:

<ContentPage...>
...
  <Shell.TitleView>
     <StackLayout Spacing="0">
       <Label Text="Hello world" VerticalOptions="Start" HorizontalOptions="Start"/>
       <Label Text="{Binding Source={x:Reference page1},Path=Title}"/>
     </StackLayout>
  </Shell.TitleView>
</ContentPage>

AppShell.xaml:

<Shell...>
...
    <FlyoutItem FlyoutdisplayOptions="AsMultipleItems">
        <Tab Title="Tab1">
            <ShellContent Title="Page1"
                          ContentTemplate="{DataTemplate local:Page1}"/>

            <ShellContent Title="Page2"
                          ContentTemplate="{DataTemplate local:Page2}"/>
        </Tab>

        <Tab Title="Tab2">
            <ShellContent Title="Page1"
                          ContentTemplate="{DataTemplate local:Page1}"/>

            <ShellContent Title="Page2"
                          ContentTemplate="{DataTemplate local:Page2}"/>
        </Tab>
    </FlyoutItem>
</Shell>

所以我要实现的目标是2分:

  1. 如屏幕截图所示,Label应该位于整个应用程序栏(FlyoutIcon + TitleView)的上方,而不应该仅位于TitleView的顶部。 / li>
  2. 与此同时,ContentPage.Title的原始样式不应更改。

原始页面标题

Original Title

尝试

Attempt

所需结果

Desired

奖金问题:

似乎Shell应用栏由FlyoutIconTitleView两部分组成。 Xamarin.Forms如何/在何处构建Shell布局?简要说明或指向XF Github repo中的相关类。

尝试使用一些Shell自定义渲染器失败。

编辑

  • 附加控件应该是Shell的一部分,以便我可以根据当前页面自定义内容。这也意味着在打开Flyout时将其覆盖。

编辑2

解决方案可能来自即将到来的功能Shell.AppBar。同时打开Android项目级别的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...