当我尝试在我的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,因为这对我来说有点新鲜......它正在应用程序的其他方面工作。
我知道,那个人遇到了我here的确切问题。
我只是尝试使用Xamarins自己的导航,并且我收到了完全相同的错误,因此我将此归咎于Xamarin Forms。我正在使用AppCompat
,也许我需要更新这个?
它在iOS上运行正常 - 所以这只是一个Android问题。
答案 0 :(得分:0)
如果您使用的是自定义渲染器,请务必在原生Android控件上设置ID以避免此问题。
这是一个非常罕见的例外,我们只是在模型窗口被推到地图上时才会看到。然而,好消息是:修复工作正在进行中,在下一个稳定版本中不再是问题。