Архитектура кода: специфичный для Android XAML в Xamarin - PullRequest
0 голосов
/ 08 октября 2019

Новый для Xamarin. Я создаю страницу с вкладками в обычном проекте Xamarin с панелью инструментов внизу примерно так (My MainPage.xaml):

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="MyProject.MainPage"
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
             android:TabbedPage.ToolbarPlacement="Bottom">

    <ContentPage IconImageSource="p1.png">
        <ContentPage.Content>
            <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
                <Label Text="Welcome to Page 1"></Label>
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>

    <ContentPage IconImageSource="p2.png">
        <ContentPage.Content>
            <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
                <Label Text="Welcome to Page 2"></Label>
            </StackLayout>
        </ContentPage.Content> 
    </ContentPage>

</TabbedPage>

И выше работает как ожидалось. Тем не менее, я хотел бы сделать

<TabbedPage ... xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
             android:TabbedPage.ToolbarPlacement="Bottom">

в MyProject.Android, так как таким образом я могу убедиться, что вся моя специфичная для Android работа находится в этом проекте. Возможно ли достичь этого с помощью XAML (без использования кода позади) или иным образом, какова лучшая практика здесь?

1 Ответ

1 голос
/ 09 октября 2019

Боюсь, ты не сможешь этого сделать. Из документа :

Platform-specifics можно использовать функции, доступные только на конкретной платформе, без реализации пользовательских средств визуализации или эффектов.

В моем понимании, для пользователя легко использовать какую-то конкретную функцию платформы в общем проекте .

А функциональные возможности платформы различаются, некоторые для представлений, некоторыепредназначены для макета, страниц и т. д. Вы не можете написать их все в одном классе.

Вы также можете прочитать документ о том, как создать специфику платформы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...