Панель навигации xamarin не показывает TitleView - PullRequest
0 голосов
/ 14 марта 2019

Новичок в Xamarin, и я пытаюсь создать собственную панель навигации в моем кроссплатформенном приложении. После некоторого чтения я обнаружил, что смогу использовать компонент title-view в моем файле подкачки 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"
             x:Class="amici.MyGroups">
    <NavigationPage.TitleView>
        <StackLayout Orientation="Horizontal" VerticalOptions="Center" Spacing="10">
            <Label HorizontalOptions="StartAndExpand" Text="Left"/>
            <Label HorizontalOptions="CenterAndExpand" Text="Center"/>
            <Label HorizontalOptions="EndAndExpand" Text="Right"/>
        </StackLayout>
    </NavigationPage.TitleView>

    <ContentPage.Content>
        <ScrollView>
            <Grid x:Name="grid1">
                <StackLayout>
                        <Label Text="Welcome"
                        VerticalOptions="CenterAndExpand" 
                        HorizontalOptions="CenterAndExpand" />
                    </StackLayout>
                   <ActivityIndicator x:Name="WaitIcon"  IsRunning="{Binding IsBusy}" VerticalOptions="Center" HorizontalOptions="Center" />
            </Grid>
        </ScrollView>
    </ContentPage.Content>
</ContentPage>

Я перехожу на свою страницу «Мои группы», например: Navigation.PushAsync (new MyGroups ());.

Однако отображается только страница навигации по умолчанию со значком стрелки назад?

очевидно, я что-то упустил, или я чего-то не понимаю. Это нужно сделать на уровне приложения?

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Как говорится в XAML:
<NavigationPage.TitleView> .. </NavigationPage.TitleView>

Вы можете установить полностью пользовательский View как NavigationBar, однако это возможно только на NavigationPage с. Ваш код частично верен, потому что вы установили NavigationPage.TitleView, а не NavigationPage:
Navigation.PushAsync(new MyGroups())

Если вы перейдете к NavigationPage:
Navigation.PushAsync(new NavigationPage(new MyGroups()))

Вы должны увидеть свой пользовательский NavigationPage.TitleView. Однако результат будет зависеть от вашей текущей модели навигации, и вы можете получить несколько панелей навигации. Это потому, что вы вложите NavigationPage в другой NavigationPage.

Я бы настоятельно рекомендовал прочитать официальную документацию на эту тему, чтобы вам стало понятно.

0 голосов
/ 20 апреля 2019

Вы также можете настроить навигацию с помощью MainPage, как

MainPage = new NavigationPage(new PageName());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...