问题描述
我正在尝试在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分:
- 如屏幕截图所示,
Label
应该位于整个应用程序栏(FlyoutIcon
+TitleView
)的上方,而不应该仅位于TitleView
的顶部。 / li> - 与此同时,
ContentPage.Title
的原始样式不应更改。
尝试
所需结果
奖金问题:
似乎Shell
应用栏由FlyoutIcon
和TitleView
两部分组成。 Xamarin.Forms如何/在何处构建Shell
布局?简要说明或指向XF Github repo中的相关类。
尝试使用一些Shell自定义渲染器失败。
编辑
编辑2
解决方案可能来自即将到来的功能Shell.AppBar。同时打开Android项目级别的解决方案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)