如何在xamarin.Forms中将内容页面(xaml)加载到另一个页面(xaml),但保持页眉和页脚相同(例如Xamarin.Android中的标签)

时间:2019-05-10 04:18:44

标签: xamarin.forms

我希望在Xamarin.Forms中创建一个自定义的选项卡式页面,页眉和页脚保持不变。中间部分包含内容。

标题通常是文本标题。根据选项卡的选择,只有屏幕的中央部分会不断变化。

页脚包含不同的选项卡。它也不像通常的选项卡式页面。它更像是一个按钮,在选择时会更改颜色,并且它们之间有一定的间隔。

这是示例图片

Expected

1 个答案:

答案 0 :(得分:0)

您可以通过右键单击项目,按“添加”,然后添加一个ContentView来创建ContentView。

然后,您可以使用网格并创建不同的行,并在一行上引用ContentView,在其他两行上引用页眉和页脚。

Xaml顶部引用这样的ContentView。

xmlns:Views="clr-namespace:SharedTestProject.ContentViews"

然后像这样定义Xaml的其余部分。之后,您要做的就是实现更改可见视图的逻辑。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="55"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid x:Name="NavigationButtons" HeightRequest="55" Grid.Row="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="140"/>
            <ColumnDefinition Width="140"/>
            <ColumnDefinition Width="140"/>
        </Grid.ColumnDefinitions>
        <Grid Grid.Column="0" HeightRequest="50" WidthRequest="140" VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand">
            <Button x:Name="BtnView1" Clicked="BtnView1_Clicked" Text="View1"/>
        </Grid>
        <Grid Grid.Column="1" HeightRequest="50" WidthRequest="140" VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand">
            <Button x:Name="BtnView2" Clicked="BtnView2_Clicked" Text="View2"/>
        </Grid>
        <Grid Grid.Column="2" HeightRequest="50" WidthRequest="140" VerticalOptions="StartAndExpand" HorizontalOptions="CenterAndExpand">
            <Button x:Name="BtnView3" Clicked="BtnView3_Clicked" Text="View3"/>
        </Grid>
    </Grid>

    <Grid x:Name="ContentViews" Grid.Row="1">
        <ContentViews:View1 x:Name="View1" IsVisible="True"/>
        <ContentViews:View2 x:Name="View2" IsVisible="False"/>
        <ContentViews:View3 x:Name="View3" IsVisible="False"/>
    </Grid>
</Grid>