您可以将NavigationPage放在ContentPage中吗?

时间:2018-07-07 19:33:18

标签: c# xaml xamarin xamarin.forms

我正在尝试使用Xamarin Forms创建音乐播放器。现在,在页面底部,始终有一个带有音乐播放器控件的栏。我认为不是总是在每个视图中添加标签并创建一个新的PlayerBar,而是创建一个RootPage并用一次在其内部和上方创建一次跨越视图其余部分的NavigationBar的RootPage很有用。

enter image description here

在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:views="clr-namespace:PodBase.Views"
             xmlns:controls="clr-namespace:PodBase.Controls"
             x:Class="PodBase.Views.RootPage">
    <ContentPage.Content>
        <Grid>
            <NavigationPage>
                <x:Arguments>
                    <views:MainPage/>
                </x:Arguments>
            </NavigationPage>
            <controls:PlayerControl/>
        </Grid>
    </ContentPage.Content>
</ContentPage>

但是,当我尝试一下时,出现错误,提示无法将NavigationPage添加到IGridList。我还有其他选择可以解决吗?

1 个答案:

答案 0 :(得分:1)

这是不可能的。 Page只能位于根目录。在内部可以有一个VisualElement,在其中VisualElement中可以嵌套任意数量的东西。

要实现这种行为,请从NavigationPage继承并在底部添加播放器控件。或者,您将必须模仿自己的导航页面行为。