TabbedPage вылетает приложение при запуске.Другие не - PullRequest
0 голосов
/ 14 октября 2018

Я столкнулся с этой проблемой сегодня вечером, и после нескольких часов мозгового штурма, я подумал, что спрошу.Пожалуйста, обратитесь к приведенному ниже коду:

App.xaml.cs

            MainPage = new NavigationPage(new MainPage());
//            MainPage = new NavigationPage(new ActivitiesPage());

Приведенный выше код по какой-то причине не работает.Я сделал тест с прокомментированным кодом ниже, и все работает так, как должно.Кто-нибудь знает причину этого?Код для обоих классов xaml (MainPage и ActivitiesPage) приведен ниже. MainPage

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Instagram_App.View.MainPage"
            xmlns:view="clr-namespace:Instagram_App.View;assembly=Instagram_App">
    <view:ActivitiesPage Title="Activities" Icon="heart.png"/>
    <view:ProfilePage Title="Profile"  Icon="user.png"/>
</TabbedPage>

ActivitiesPage

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Instagram_App.View.ActivitiesPage">
    <ContentPage.Content>
        <ListView x:Name="listView" ItemSelected="ListView_OnItemSelected" HasUnevenRows="True">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand">
                            <Image Source="{Binding ImageUrl}" />
                            <Label Text="{Binding Description}"/>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ContentPage.Content>
</ContentPage>

Я прошел по коду, чтобы увидеть, что происходит, и кажется, что когда компилятор получаетв OnStart () он падает.Пожалуйста, помогите и спасибо!

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Согласно вашему коду , ваша MainPage должна быть установлена ​​как TabbedPage и Root вашего приложения.Итак, ваш код App.xaml.cs

MainPage = new MainPage();

в порядке.Если вам нужна вкладка Contain NavigationPage для TabbedPage, вы можете использовать ответ последнего респондента:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        xmlns:local="clr-namespace:TabbedPageWithNavigationPage;assembly=TabbedPageWithNavigationPage"
        x:Class="TabbedPageWithNavigationPage.MainPage">
<local:TodayPage />
<NavigationPage Title="Schedule" Icon="schedule.png">
    <x:Arguments>
        <local:SchedulePage />
    </x:Arguments>
</NavigationPage>

И, если есть сомнения, вы можете обратиться к официальной документации: Использование TabbedPage и демонстрация

0 голосов
/ 14 октября 2018

TabbedPage должен быть корневым (MainPage) вашего приложения, не содержащегося в NavigationPage.Однако каждая вкладка в TabbedPage может содержать NavigationPage

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:local="clr-namespace:TabbedPageWithNavigationPage;assembly=TabbedPageWithNavigationPage"
            x:Class="TabbedPageWithNavigationPage.MainPage">
    <local:TodayPage />
    <NavigationPage Title="Schedule" Icon="schedule.png">
        <x:Arguments>
            <local:SchedulePage />
        </x:Arguments>
    </NavigationPage>
</TabbedPage>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...