Unable to add PopupPage to project in Visual Studio

為{幸葍}努か 提交于 2019-12-11 19:05:59

问题


I would like to use Rg.Plugins.Popup for Xamarin.Forms but unfortunately I cannot add PopupPage to the project. I am using VIsual Studio 2017. In AddNewItem window there is no PopupPage at all.

I tried to add ContentPage instead like this:

public partial class CustomPopupPage : ContentPage
{
    public CustomPopupPage ()
    {
        InitializeComponent ();
    }
}

but whenever i try to change type ContentPage to PopupPage I get following error: Partial declarations of 'CustomPopupPage' must not specify different base classes.

The problem is that second partial class is in auto-generated file CustomPopupPage.xaml.g.cs and I cannot modify that file because each time application is compiling it rewrites that file.

I think I am missing something obvious here because demo is working fine.


回答1:


PopupPage is a subclass of ContentPage .So you have to add a new ContentPage and change the superclass both in xaml and code benind .

Firstly , install the package Rg.Plugins.Popup from nuget in share project and specific platform (iOS and Android).

The plugin requires to be initialized. To use a PopupPage inside an application, each platform application must initialize the Rg.Plugins.Popup. This initialization step varies from platform to platform and is discussed in the following sections.

iOS ->AppDelegate.cs

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
   Rg.Plugins.Popup.Popup.Init();

   global::Xamarin.Forms.Forms.Init ();
   LoadApplication (new App ());
   return base.FinishedLaunching (app, options);
}

Android->MainActivity

protected override void OnCreate(Bundle bundle)
{
   base.OnCreate(bundle);

   Rg.Plugins.Popup.Popup.Init(this, bundle);

   Xamarin.Forms.Forms.Init(this, bundle);
   LoadApplication (new App ());
}

xaml

<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
    xmlns:animations="clr-namespace:Rg.Plugins.Popup.Animations;assembly=Rg.Plugins.Popup"
    x:Class="MyProject.MyPopupPage">
    <!--You can set an animation in the xaml file or in the csharp code behind-->
    <pages:PopupPage.Animation>
        <animations:ScaleAnimation 
            PositionIn="Center"
            PositionOut="Center"
            ScaleIn="1.2"
            ScaleOut="0.8"
            DurationIn="400"
            DurationOut="300"
            EasingIn="SinOut"
            EasingOut="SinIn"
            HasBackgroundAnimation="True"/>
    </pages:PopupPage.Animation>
    <!--You can use any elements here which are extended from Xamarin.Forms.View-->
    <StackLayout 
        VerticalOptions="Center" 
        HorizontalOptions="Center" 
        Padding="20, 20, 20, 20">
        <Label
            Text="Test"/>
    </StackLayout>
</pages:PopupPage>

in code behind

public partial class MyPopupPage : Rg.Plugins.Popup.Pages.PopupPage
{
  public MyPopupPage()
  {
    InitializeComponent();
  }

  protected override void OnAppearing()
  {
    base.OnAppearing();
  }
}

Update

It seems an existing issue of vs 2017 , on VS 2019 it works fine . And I will post this issue to product teams .



来源:https://stackoverflow.com/questions/58010346/unable-to-add-popuppage-to-project-in-visual-studio

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!