将类型Android Fragment转换为MvxFragment
本文关键字:MvxFragment 转换 Fragment 类型 Android | 更新日期: 2023-09-27 18:09:48
我正在将我们的代码库更新为最新的MVVMCross库。我遇到了一个错误,上面写着:
错误CS0030:无法转换类型
Android.Support.V4.App.Fragment' to
MvvmCross.Droid.FullFragging.FFragments.MvxFragment'(CS0030((QualBoard.Mobile.Droid(
代码:
public override Fragment GetItem(int position)
{
var frag = Fragments.ElementAt(position);
var fragment = Fragment.Instantiate(_context,
FragmentJavaName(frag.FragmentType));
((MvxFragment)fragment).DataContext = frag.ViewModel;
return fragment;
}
问题子行是:((MvxFragment)fragment).DataContext = frag.ViewModel;
。
我很难将MVVMCross版本4中应该使用的内容组合起来,以取代以前使用的内容。
我认为问题在于您正在转换为错误的MvxFragment
类类型。
Mvvmcross提供两种MvxFragment
类类型,以匹配安卓系统中提供的类型:
-
本机片段-可在MvvmCross.Droid.FullFraging nuget包中找到,并提供
MvvmCross.Droid.FullFragging.Fragments.MvxFragment
。该类与API 11中引入的原生AndroidFragment
相匹配 -
支持库Fragmet-可在MvvvmCross.Droid.Support.V4 nuget包中找到,并提供
MvvmCross.Droid.Support.V4.MvxFragment
。此类与Android支持库Fragmets相匹配
错误CS0030:无法将类型
Android.Support.V4.App.Fragment
转换为MvvmCross.Droid.FullFragging.Fragments.MvxFragment
从您的错误来看,我认为您使用的是支持库中的片段,因此应该使用MvvmCross.Droid.Support.V4.MvxFragment
。