当我在我的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问题。