public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { CallListViewModel = new CallListViewModel(); var rootView = inflater.Inflate(Resource.Layout.fragment_call, container, false); recycler = rootView.FindViewById <RecyclerView>(Resource.Id.recycleCallHistory); fabAddCall = rootView.FindViewById <FloatingActionButton>(Resource.Id.fabCall); swipeRefresh = rootView.FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefresh); InitSwipeRefreshLayout(swipeRefresh); recycler.HasFixedSize = true; recycler.SetLayoutManager(new GridLayoutManager(this.Context, 2)); recycler.SetItemAnimator(new DefaultItemAnimator()); Adapter = new CallListAdapter(Activity, CallListViewModel); recycler.SetAdapter(Adapter); InitRecyclerScrollListener(recycler, (e) => { if (e && fabAddCall.IsShown) { fabAddCall.Hide(); } else if (!e && !fabAddCall.IsShown) { fabAddCall.Show(); } }); return(rootView); }
public CallListAdapter(Activity ParentActivity, CallListViewModel ViewModel) { this.ParentActivity = ParentActivity; this.ViewModel = ViewModel; ViewModel.Items.CollectionChanged += (sender, args) => { if (args.Action == NotifyCollectionChangedAction.Reset) { this.ParentActivity.RunOnUiThread(NotifyDataSetChanged); } }; }