Xamarin MvvmCross:无法解析 v4.FragmentManager
Xamarin MvvmCross: Cannot Resolve v4.FragmentManager
在我的 Xamarin Android 中,我想解析 v4.fragment 管理器,所以我按以下方式解析它
var ss = Mvx.Resolve<Android.Support.V4.App.FragmentManager>();
但是,我遇到了错误:
MvvmCross.Platform.Exceptions.MvxIoCResolveException: Failed to resolve type Android.Support.V4.App.FragmentManager
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve (System.Type t) [0x0001c] in D:\git\MvvmCross\MvvmCross\Platform\Platform\IoC\MvxSimpleIoCContainer.cs:199
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve[T] () [0x00000] in D:\git\MvvmCross\MvvmCross\Platform\Platform\IoC\MvxSimpleIoCContainer.cs:189
at MvvmCross.Platform.Mvx.Resolve[TService] () [0x00005] in D:\git\MvvmCross\MvvmCross\Platform\Platform\Mvx.cs:34
at TJX.Core.IoC.MvxDependencyResolver.ResolveType[T] () [0x00001] in /Users/ali00261/Loyalty-MultiBanner-Mobile/TJX.Core/IoC/MvxDependencyResolver.cs:11
任何人都可以告诉我我做错了什么以及如何解决它吗?
谢谢。
更新
我想用支持替换 MvxFragment<TViewModel>
中的 FrameLayout。v4.fragment。
ZXingScannerFragment
是支持。v4.Fragment由'ZXing'提供扫描条码。
var scanFragment = new ZXingScannerFragment();
var ss = Mvx.Resolve<Android.Support.V4.App.FragmentManager>();
ss.BeginTransaction()
.Replace(Resource.Id.fragment_scancontainer, scanFragment)
.Commit();
我的目标是用一个支持替换视图(框架布局)。v4.Fragment
您可以使用 ChildFragmentManager
来支持在 Fragments 中管理 Fragments。
ChildFragmentManager.BeginTransaction()
.Replace(Resource.Id.fragment_scancontainer, scanFragment)
.Commit();
就 App.Fragment
与 Support.V4.App.Fragment
而言,您似乎使用了错误的依赖项。
Mvvmcross 提供两种 MvxFragment
class 类型以匹配 Android:
中提供的类型
- 原生片段 - 可以在 MvvmCross.Droid.FullFragging nuget package and offers
MvvmCross.Droid.FullFragging.Fragments.MvxFragment
. This class matches to the native Android Fragment
introduced in API 11. 中找到
- 支持库 Fragmet - 可在 MvvmCross.Droid.Support.V4 nuget package and offers
MvvmCross.Droid.Support.V4.MvxFragment
. This class matches to the Android Support Library Fragmets. 中找到
您需要使用 MvxFragment
的 支持库片段 版本才能将 Support.V4.App.Fragment
与 ChildFragmentManager
一起使用。
在我的 Xamarin Android 中,我想解析 v4.fragment 管理器,所以我按以下方式解析它
var ss = Mvx.Resolve<Android.Support.V4.App.FragmentManager>();
但是,我遇到了错误:
MvvmCross.Platform.Exceptions.MvxIoCResolveException: Failed to resolve type Android.Support.V4.App.FragmentManager
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve (System.Type t) [0x0001c] in D:\git\MvvmCross\MvvmCross\Platform\Platform\IoC\MvxSimpleIoCContainer.cs:199
at MvvmCross.Platform.IoC.MvxSimpleIoCContainer.Resolve[T] () [0x00000] in D:\git\MvvmCross\MvvmCross\Platform\Platform\IoC\MvxSimpleIoCContainer.cs:189
at MvvmCross.Platform.Mvx.Resolve[TService] () [0x00005] in D:\git\MvvmCross\MvvmCross\Platform\Platform\Mvx.cs:34
at TJX.Core.IoC.MvxDependencyResolver.ResolveType[T] () [0x00001] in /Users/ali00261/Loyalty-MultiBanner-Mobile/TJX.Core/IoC/MvxDependencyResolver.cs:11
任何人都可以告诉我我做错了什么以及如何解决它吗? 谢谢。
更新
我想用支持替换 MvxFragment<TViewModel>
中的 FrameLayout。v4.fragment。
ZXingScannerFragment
是支持。v4.Fragment由'ZXing'提供扫描条码。
var scanFragment = new ZXingScannerFragment();
var ss = Mvx.Resolve<Android.Support.V4.App.FragmentManager>();
ss.BeginTransaction()
.Replace(Resource.Id.fragment_scancontainer, scanFragment)
.Commit();
我的目标是用一个支持替换视图(框架布局)。v4.Fragment
您可以使用 ChildFragmentManager
来支持在 Fragments 中管理 Fragments。
ChildFragmentManager.BeginTransaction()
.Replace(Resource.Id.fragment_scancontainer, scanFragment)
.Commit();
就 App.Fragment
与 Support.V4.App.Fragment
而言,您似乎使用了错误的依赖项。
Mvvmcross 提供两种 MvxFragment
class 类型以匹配 Android:
- 原生片段 - 可以在 MvvmCross.Droid.FullFragging nuget package and offers
MvvmCross.Droid.FullFragging.Fragments.MvxFragment
. This class matches to the native AndroidFragment
introduced in API 11. 中找到
- 支持库 Fragmet - 可在 MvvmCross.Droid.Support.V4 nuget package and offers
MvvmCross.Droid.Support.V4.MvxFragment
. This class matches to the Android Support Library Fragmets. 中找到
您需要使用 MvxFragment
的 支持库片段 版本才能将 Support.V4.App.Fragment
与 ChildFragmentManager
一起使用。