我正在开发一个项目,我可以使用MapFragment或SupportMapFragment作为自定义控件。 我尝试混合自定义控件(N-18)和Fraggle(N-26)教程,但我无法使其工作。
我的自定义控件类:
public class CustomMapView : MvxFragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
return this.BindingInflate(Resource.Layout.CustomMapViewLayout, null);
}
}
我的CustomMapViewLayout.axml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
在FirstView.axml中,我引用了CustomMapView:
<cc.CustomMapView
android:layout_width="match_parent"
android:layout_height="match_parent" />
(我使用Setup.cs中的ViewNamespaceAbbreviations)
当我尝试部署时,我收到了以下错误:
MvxBind:找不到错误视图类型 - cc.CustomMapView(我确定命名空间是正确的) Android.Views.InflateException:正在加载...
有没有人设法解决这类问题?
答案 0 :(得分:0)
据我所知,片段必须在FragmentActivity父项中使用,并且必须使用fragment
xml标记或使用(支持)片段管理器方法之一加载父视图组中的动态加载
报告View Type Not Found - cc.CustomMapView
的Mvx代码肯定不起作用 - 它正在寻找一个在该命名空间中继承Android View
的类,而不是寻找Fragment
。
可能有办法编写更多“动态”片段xml代码 - 但是mvvmcross贡献者中没有一个已经挖掘出任何这些代码。现在,我认为你必须更“常规”地使用片段 - 就像N=26 sample
中显示的方式一样