c# - 为 widget.RecyclerView 更改 RecyclerView MvvmCross
问题描述
我的应用程序有一个模块,您可以在其中回答不同的问题,例如文本、布尔值、多项选择等...
它使用 MvvmCross RecyclerView 及其适配器和 viewHolders 构建。基本上,我有 14 个视图类型。每一个都是一种布局。
但是 mvvmcross 的 recyclerview 在我滚动时给我带来了性能问题,它会出现大约一秒的延迟。
我的问题是: android.support.v7.widget.RecyclerView 的 recyclerView 和 mvvmcross 的 recyclerView 之间会有一些区别,除了绑定的方式来改变它并验证它是否提高了一点性能?
不幸的是,由于公司政策,我不能分享太多代码。
谢谢你的帮助。
我的回收站视图
<MvvmCross.Droid.Support.V7.RecyclerView.MvxRecyclerView
android:clipToPadding="false"
android:id="@+id/form_rv_formitems"
android:focusable="false"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scrollbars="vertical" />
活动
protected override void OnViewModelSet()
{
_recyclerViewAdapter = new RecyclerViewAdapter((IMvxAndroidBindingContext)BindingContext);
_recyclerView = FindViewById<MvxRecyclerView>(Resource.Id.form_rv_formitems);
_recyclerView.HasFixedSize = true;
_recyclerView.Adapter = _recyclerViewAdapter;
_recyclerView.ViewTreeObserver.AddOnScrollChangedListener(this);
}
我的适配器
public class RecyclerViewAdapter : MvxRecyclerAdapter
{
public RecyclerViewAdapter(IMvxAndroidBindingContext bindingContext)
: base(bindingContext) => HasStableIds = true;
public override int GetItemViewType(int position) =>
ViewTypeFactory.GetViewTypeBy((BindableFormItem)GetItem(position));
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
var bc = new MvxAndroidBindingContext(parent.Context, BindingContext.LayoutInflaterHolder);
var vh = FormItemViewHolderFactory.GetByViewType(viewType, parent, bc);
return vh;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
base.OnBindViewHolder(holder, position);
var vh = holder as FormItemViewHolder;
vh.Bind();
}
public override long GetItemId(int position)
{
var fi = (BindableFormItem)GetItem(position);
return fi.Id;
}
}
解决方案
推荐阅读
- javascript - window.open 导致主窗口退出全屏模式。有解决方法吗?
- react-admin - 将导出默认值添加到 DatagridBody
- wpf - WPF DataGrid 自定义模板自动生成的列内容绑定
- pagespeed-insights - 在 PageSpeed Insights 中下载优化的图像、脚本和 CSS 资源时发生了什么?
- java - 来自带有 http 或 https 的 URL 的文件对象
- karate - 在空手道测试功能中设置背景
- r - 编码/求和功能
- mongodb - 与 jmeter azure mognodb 的连接
- python - 如何遍历 Python 查询字符串中的日期范围并将结果附加到数据框/csv
- asp.net-mvc - " 字符在 MVC.Net 中未正确转义