Xamarin 表单 OnBackButtonPressed 自升级以来未在 Android 上触发

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

我有一个使用 AndroidX Xamarin 之前的版本、Java V8 (C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot) 在 Android 8.1 设备上运行的应用程序

我现在需要它在 Android 版本 8.1 至 12 的设备上运行,因此我升级了所有 NuGet 包,将目标框架设置为 12,根据需要将 Java 版本更新为 17。 (C:\Program Files\Microsoft\jdk-17.0.4.101-hotspot)

Visual Studio 2019 Xamarin Forms 5.0.0.2515(最新) 所有最新必需的 AndroidX 软件包。 目标框架 Android 12 最低 Android 版本 8.1 目标 Android 版本 12

一切看起来都很好,但 OnBackButtonPressed 事件不再在 Android 8.1 设备上触发。 它是在升级所有其他组件之前完成的,我自己没有更改任何代码。

OnBackButtonPressed 事件确实会在同一应用内的 Android 9 和 Android 10 设备上触发(所有三台设备上都安装了相同的 .apk)。

有谁知道为什么会这样或者我更新的哪一点可能破坏了它?

这不会触发 ->>>

protected override bool OnBackButtonPressed()
{
    base.OnBackButtonPressed();
    myViewModel.DoCancel();
    return true;
}
xamarin xamarin.forms xamarin.android
1个回答
0
投票

我在运行 8.1 或更早版本的任何设备上都遇到了同样的问题。我从这个github问题论坛找到了解决方案。他们建议的解决方法是添加此标志。我不确定这是否会产生其他问题,但它修复了我的项目。我添加了 if 语句以仅将标志应用于影响 sdk 版本。

 if (Build.VERSION.SdkInt <= BuildVersionCodes.OMr1) {
     Forms.SetFlags("Disable_Accessibility_Experimental");
 }
© www.soinside.com 2019 - 2024. All rights reserved.