Получение ошибки при попытке создать фрагмент из ContentPage Xamarin Forms - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь использовать встраивание форм Xamarin для совместного использования XAML ContentPages между несколькими собственными проектами.Я добавил последние Nuget Xamarin.Forms для всех проектов, и все это прекрасно компилируется.Я получаю ошибку во время выполнения, которая говорит, что «элемент не относится к типу Xamarin.forms.view» при вызове CreateFragment.Кто-нибудь знает, что может быть не так?

Вот мой ContentPage, который находится в старомодной PCL (созданной до .NET Standard проектов):

<?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="commonClassLibrary.ContentPages.MainScreen">
    <ContentPage.Content>
        <ScrollView HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
            <StackLayout Padding="10">
                <Label Text="Wowzers" TextColor="Black" FontAttributes="Bold" HorizontalOptions="FillAndExpand"/>
            </StackLayout>
        </ScrollView>
    </ContentPage.Content>
</ContentPage>

Вот макет, которым является MainActivityиспользуя:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/container" />
</LinearLayout>

Здесь я пытаюсь поменять фрагмент, созданный из моей ContentPage:

        if (!Xamarin.Forms.Forms.IsInitialized) {
            // initialize Xamarin.Forms before we use it
            Xamarin.Forms.Forms.Init(this, bundle);
        }

        // create the login page (Xamarin.Forms ContentPage)
        var main = new MainScreen();

        // get hold of the native Android fragment that represents the Xamarin.Forms page
        var mainFragment = main.CreateFragment(this);

        // show the login screen (native Xamarin.Android)
        FragmentManager
            .BeginTransaction()
            .AddToBackStack(null)
            .Replace(Resource.Id.container, mainFragment)
            .Commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...