在 RTL 语言 (Android) 中,弹出式抽屉菜单大小不正确

问题描述 投票:0回答:1

在Xamarin.Forms 5.0.0.2662版本应用程序中,使用FlyoutPage,抽屉式菜单按预期从右侧弹出,但它没有完全显示,甚至在某些情况下有间隙。下图显示了一个 LTR 抽屉和一个 RTL 抽屉。分别注意图标的左/右边界......................

问题出在 Xamarin.Forms 中,因为如果我将 Xamarin.Forms 降级到之前的版本 4.6,抽屉菜单就会完全显示。

有人知道解决方案或解决方法吗?

谢谢!

android xamarin.forms navigation-drawer
1个回答
0
投票

我发现了一个受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 设备。

© www.soinside.com 2019 - 2024. All rights reserved.