在Xamarin.Forms 5.0.0.2662版本应用程序中,使用FlyoutPage,抽屉式菜单按预期从右侧弹出,但它没有完全显示,甚至在某些情况下有间隙。下图显示了一个 LTR 抽屉和一个 RTL 抽屉。分别注意图标的左/右边界......................
问题出在 Xamarin.Forms 中,因为如果我将 Xamarin.Forms 降级到之前的版本 4.6,抽屉菜单就会完全显示。
有人知道解决方案或解决方法吗?
谢谢!
我发现了一个受this启发的解决方法。基本上,我的应用程序有一个基础
FlyoutPage
,在 Android 和 RTL 语言环境中,我可以覆盖 OnSizeAllocated()
方法并重新建立 Flyout
页面的位置(它是 FlyoutPage
的属性):
protected override void OnSizeAllocated(double width, double height)
{
base.OnSizeAllocated(width, height);
if (Device.RuntimePlatform == Device.Android &&
FlowDirection == FlowDirection.RightToLeft)
{
Flyout.TranslationX = width - (Flyout.Width + 64 + FlyoutBounds.X);
}
}
我仍然不知道并且想澄清的是 64 偏移量。它是由最初在 github 上发布解决方法的人“计算”出来的,但不确定这是否只是一次尝试和错误发现,或者背后是否有一些逻辑。尽管如此,奇怪的是,这个解决方法适用于我测试过的所有 Android 设备。