Переключение представлений TabbedPage в зависимости от платформы в Xamarin - PullRequest
0 голосов
/ 28 марта 2020

Из-за различий в дизайне страниц моего приложения мне нужно показать одну из вкладок в зависимости от того, работает ли она на Android или iOS. Я пытаюсь сделать это ниже, но это не работает, кажется, компилируется, но приложение сразу падает. Вот что я попробовал:

 <TabbedPage.Children>
        <OnPlatform x:TypeArguments="View">
            <On Platform="Android">
                <NavigationPage Title="{x:Static resources:AppResources.StatsTitle}" IconImageSource="stats1.png">
                    <x:Arguments>
                        <views:StatsPageAndroid />
                    </x:Arguments>
                </NavigationPage>
            </On>
            <On Platform="iOS">
                <NavigationPage Title="{x:Static resources:AppResources.StatsTitle}" IconImageSource="stats2.png">
                    <x:Arguments>
                        <views:StatsPageIos />
                    </x:Arguments>
                </NavigationPage>
            </On>
        </OnPlatform>

        . 
        .
        .
    </TabbedPage.Children>

Как это сделать?

Спасибо

1 Ответ

1 голос
/ 30 марта 2020

Класс OnPlatform - это обобщенный класс c, для создания экземпляра которого необходимо указать атрибут x:TypeArguments, соответствующий целевому типу

Попробуйте изменить

<OnPlatform x:TypeArguments="View">
* От 1008 * до
 <OnPlatform x:TypeArguments="Page">
...