Xamarin表示Rg.Plugins.Popup

时间:2018-06-06 12:39:06

标签: c# xamarin popup

我正在尝试在Xamarin Forms 3.0.0.530893中创建一个弹出页面。我使用Rg.Plugins.Popup v.1.1.4.158-pre并在Android 8.0.0上测试它。但是弹出窗口显示在左上角,无论我放入水平和垂直选项中。

这是我的弹出页面

 it.only('should focus container on mount', () => {
        const container = React.createRef()
        automatic = mount(<Automatic classes={{}} />, mountContext)

        document.activeElement.should.be.equal(automatic.ref(container.current))
    })

这是后端

<?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"
         x:Class="ScanApp.Page.Popup.SignOutPopup"
         xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup">
  <StackLayout BackgroundColor="White" HorizontalOptions="Center" VerticalOptions="Center">
    <Label Text="Log ud" TextColor="Black"></Label>
    <Label Text="AutomationProperties du sikker på du ønsker at logge ud?"></Label>
    <Button Text="LOG UD"></Button>
    <Button Text="ANNULLER"></Button>
  </StackLayout>
</pages:PopupPage>

在这里,我在MainActivity OnCreate初始化Android插件

using Rg.Plugins.Popup.Pages;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace ScanApp.Page.Popup
{
  [XamlCompilation(XamlCompilationOptions.Compile)]
  public partial class SignOutPopup : PopupPage
  {
    public SignOutPopup ()
    {
        InitializeComponent ();
    }
}

我在此推送页面

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

2 个答案:

答案 0 :(得分:0)

我不确定这个插件究竟是如何工作的,但我已经在过去的项目中使用过它,在这里我做了什么:

我建议您像这样定义您的页面。将stacklayout嵌入“全屏”框架中,并为框架设置一些边距和paddig:

<?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"
         x:Class="ScanApp.Page.Popup.SignOutPopup"
         xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
         >

    <Frame HorizontalOptions="Center" VerticalOptions="Center" 
           BackgroundColor="White" Margin="20" Padding="20">

      <StackLayout>
        <Label Text="Log ud" TextColor="Black"></Label>
        <Label Text="AutomationProperties du sikker på du ønsker at logge ud?"></Label>
        <Button Text="LOG UD"></Button>
        <Button Text="ANNULLER"></Button>
      </StackLayout>

    </Frame>
</pages:PopupPage>

Xamarin表单 Frame class 具有特定属性,例如“ CornerRadius ”或“ HasShadow ”,可为您的框架提供真正的“弹出式”外观......你的框架应该居中。

告诉我它是否有效......

答案 1 :(得分:0)

问题不在于插件或弹出页面。问题是我放在Android MainActivity中的这些行,让应用程序填满整个屏幕

if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
{
   Window.AddFlags(WindowManagerFlags.LayoutNoLimits);
   Window.AddFlags(WindowManagerFlags.LayoutInScreen);
   Window.DecorView.SetFitsSystemWindows(true);
}