public override async void OnViewCreated(View view, Bundle savedInstanceState) { try { base.OnViewCreated(view, savedInstanceState); var loadedChecklist = await LoadChecklist(fragmentDefconStatus); foreach (var checkListEntry in loadedChecklist) { _checkList.Add(checkListEntry); } _recyclerView = view.FindViewById <RecyclerView>(Resource.Id.checkListRecyclerView); var layoutManager = new LinearLayoutManager(Context); _checklistRecyclerViewAdapter = new ChecklistRecyclerViewAdapter(_checkList); _recyclerView.SetLayoutManager(layoutManager); _recyclerView.SetAdapter(_checklistRecyclerViewAdapter); _checklistRecyclerViewAdapter.ViewHolderAction += async(s, e) => { switch (e.Item3) { case ActionType.LongClick: _actionModeItemId = e.Item2; _actionModeItemView = (e.Item1 as LinearLayout); _actionModeItemView.SetBackgroundColor(Color.ParseColor("#80ff0000")); if (_actionMode != null) { break; } _actionMode = _onCreateView.StartActionMode(this); break; case ActionType.CheckedChange: _checkList[e.Item2].Checked = (e.Item1 as CheckBox).Checked; _checkList[e.Item2].UnixTimeStampUpdated = DateTimeOffset.Now.ToUnixTimeMilliseconds(); await _sqLiteAsyncConnection.UpdateAsync(_checkList[e.Item2]); await SetCounter(); break; case ActionType.AfterTextChanged: _checkList[e.Item2].Item = (e.Item1 as AppCompatEditText).EditableText.ToString(); _checkList[e.Item2].UnixTimeStampUpdated = DateTimeOffset.Now.ToUnixTimeMilliseconds(); await _sqLiteAsyncConnection.UpdateAsync(_checkList[e.Item2]); break; default: break; } }; _eventService.MenuItemPressedEvent += _eventService_MenuItemPressedEvent; _eventService.ChecklistUpdatedEvent += (s, e) => Activity.RunOnUiThread(async() => await ReloadCheckList(fragmentDefconStatus)); await InitButtonAndCounterColors(fragmentDefconStatus); } catch (Exception) { } }
public override void OnResume() { base.OnResume(); if (_checklistRecyclerViewAdapter != null && _recyclerView != null) { _recyclerView.GetLayoutManager().ScrollToPosition(_checklistRecyclerViewAdapter.ItemCount); } else { try { _checklistRecyclerViewAdapter = new ChecklistRecyclerViewAdapter(_checkList); _recyclerView.SetAdapter(_checklistRecyclerViewAdapter); _checklistRecyclerViewAdapter.NotifyDataSetChanged(); } catch (Exception) { } } }