Rg.Plugins.Popup弹窗仅在Xamarin.iOS不显示Android端正常问题咨询
Rg.Plugins.Popup iOS端弹窗无法显示问题排查方案
已确认基础配置无误的前提下,按以下优先级排查故障:
- 检查初始化调用顺序
iOS端AppDelegate的FinishedLaunching方法中,Rg.Plugins.Popup.Popup.Init()必须放在LoadApplication之前调用,错误的顺序会导致iOS端弹窗渲染失效,正确写法参考:public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); // 弹窗初始化必须在加载应用实例前执行 Rg.Plugins.Popup.Popup.Init(); LoadApplication(new App()); return base.FinishedLaunching(app, options); } - 检查Info.plist配置
确认iOS项目的Info.plist中已添加禁用状态栏样式基于控制器的配置,缺少该配置会触发弹窗渲染异常:<key>UIViewControllerBasedStatusBarAppearance</key> <false/> - 检查弹窗调用方式
必须使用弹窗专属导航实例调用,不能使用Xamarin Forms默认的页面导航,正确调用写法参考:// 禁止使用普通页面导航 // await Navigation.PushAsync(new CustomPopupPage()); // 正确调用方式 await Rg.Plugins.Popup.Services.PopupNavigation.Instance.PushAsync(new CustomPopupPage()); - 排除布局适配问题
Xamarin Forms 5对iOS安全区域适配逻辑有调整,可先给PopupPage添加固定宽高的测试内容,同时显式声明弹窗基础属性,排除布局溢出导致的不可见问题:<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" CloseWhenBackgroundIsClicked="True" BackgroundInputTransparent="False"> <StackLayout WidthRequest="300" HeightRequest="200" BackgroundColor="White"> <Label Text="弹窗测试内容" HorizontalOptions="Center" VerticalOptions="Center"/> </StackLayout> </pages:PopupPage> - 版本兼容性排查
Rg.Plugins.Popup 2.0.0.12版本与Xamarin Forms 5.0.0.2083存在已知的iOS端适配缺陷,可尝试将Rg.Plugins.Popup回退到2.0.0.10版本验证。
内容的提问来源于stack exchange,提问作者newxamarin
相关产品推荐
相关产品推荐

