我在我的应用程序中使用了rg.plugins.popup
。我更新了xamarin表单(版本=" 2.5.0.121934")。现在点击外部背景它没有关闭。我曾经多次关闭弹出窗口,但没有关闭,我尝试了下面的代码:
this.CloseWhenBackgroundIsClicked = false;
protected override bool OnBackgroundClicked()
{
Navigation.PopPopupAsync();
return false;
}
OnBackgroundClicked
没有打电话。如何解决这个问题?
答案 0 :(得分:3)
我不明白您是否知道正确的代码是:this.CloseWhenBackgroundIsClicked = true;
(不是假的),但如果这不起作用,您可以尝试解决方法直到此问题得到解决。
基本上,添加一个Grid作为PopupPage的根,并添加一个带有TapGestureRecognizer的Colorless BoxView作为Grid的子项,然后只将实际内容添加为Grid的另一个子项,并将TapGestureRecognizer设置为“BackgroundClicked”代码。
希望它有所帮助!
答案 1 :(得分:0)
我遇到了同样的问题,就我而言,这是关于不了解此插件的工作原理。
第一次使用弹出窗口时,我使用this.CloseWhenBackgroundIsClicked = true
在屏幕中央放置了一个StackLayout,并且效果很好,问题是当我将GridLayout放置为10 *,80 *,10 *列和10 *行时,80 *,10 *。我的内容在grid.rows(1),grid.columns(1)中。其他的行和列只是边界。
如果单击边框,将无法正常工作,因为我触摸的是网格边,而不是实际的背景。
解决方案是将Grid更改为stacklayout并将其居中。
答案 2 :(得分:0)
首先,我将所有StackLayout放入ScrollView中,但遇到了同样的问题。然后,我删除了ScrollView,它起作用了。
答案 3 :(得分:0)
也许答案有点晚。但我认为有人会需要它。 您应该覆盖MainActivity的后退按钮。
//将此添加到Android MainActivity内
public async override void OnBackPressed()
{
if (Rg.Plugins.Popup.Popup.SendBackPressed(base.OnBackPressed))
{
await PopupNavigation.Instance.PopAsync();
}
else
{
// Do something if there are not any pages in the `PopupStack`
}
}