Xamarin Forms模态导航引起异常。

3

当我在我的Xamarin Forms应用程序中使用Prism并将useModalNavigation设置为true时,执行命令时出现ClassCastException

这个方法在我的应用程序的其他两个地方是有效的。我执行这个方法的方式如下:

命令

private DelegateCommand _filterCommand;
public DelegateCommand FilterCommand 
    => _filterCommand ?? (_filterCommand = new 
        DelegateCommand(ExecuteFilterCommand).ObservesCanExecute(vm => CanNavigate));

执行过滤器命令

private void ExecuteFilterCommand()
{
    CanNavigate = false;
    _navigationService.NavigateAsync("MainNavigationPage/FilterLinesPage", null, true);
    CanNavigate = true;
}

这是我用于其他过滤命令的确切方式,但这会导致异常:
--- End of managed exception stack trace ---
java.lang.ClassCastException: android.widget.ImageView cannot be cast to     android.view.ViewGroup
    at android.support.v4.app.BackStackRecord.configureTransitions(BackStackRecord.java:1165)
at android.support.v4.app.BackStackRecord.beginTransition(BackStackRecord.java:1057)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:662)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:152)
at android.app.ActivityThread.main(ActivityThread.java:5507)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

我不确定问题是Prism还是Xamarin Forms引起的,因为这对我来说有些新颖...在应用程序的其他区域中可以正常工作。
我看到了和我一样的确切问题 这里
我尝试使用Xamarin自己的导航,但我收到了完全相同的错误,所以我认为这是Xamarin Forms的问题。我正在使用AppCompat,也许需要更新吗?
在iOS上它工作正常 - 所以这只是一个Android问题。

我遇到了同样的问题,只是我没有使用 Prism。这种情况只发生在一个页面上,而不是另一个页面,并且仅在使用模态推送时才会出现。如果我不将其包装在NavigationPage中,则不会崩溃,但我也无法获得导航栏。 - Cliff Cawley
嗨,Peter!请使用最新的NuGet Xamarin.Forms版本创建一个可以重现此问题的示例,并在此处提交问题:https://bugzilla.xamarin.com/enter_bug.cgi?product=Forms - therealjohn
1个回答

0

如果您正在使用自定义渲染器,请确保在本机Android控件上设置Ids以避免此问题。

这是一个相当罕见的异常情况,我们只在将模态窗口推到地图上时才看到过。不过好消息是:修复工作正在进行中,并且在下一个稳定版本中,这将不再是一个问题。


这是一个相当罕见的异常情况,我们只在将模态窗口推到地图上时才遇到过。然而好消息是:修复正在进行中,并且在下一个稳定版本中不再是问题。
  • 这正是我遇到的问题。这个问题在哪个版本中得到了修复?
- AndrewJE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接