public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { base.OnCreateView(inflater, container, savedInstanceState); View view = inflater.Inflate(Resource.Layout.fragment_message_list, null); var user = Newtonsoft.Json.JsonConvert.DeserializeObject <User>(Arguments.GetString("userData")); Activity.Title = user.FirstName + " " + user.LastName; viewModel = new MessageViewModel(user.ObjectId); sendBtn = view.FindViewById <Button>(Resource.Id.button_chatbox_send); chatbox = view.FindViewById <EditText>(Resource.Id.edittext_chatbox); recyclerView = view.FindViewById <RecyclerView>(Resource.Id.reyclerview_message_list); recyclerView.SetAdapter(adapter = new MessageListAdapter(Activity, viewModel)); recyclerView.SetLayoutManager(new LinearLayoutManager(Activity)); var onScrollListener = new RecyclerViewOnScrollListener(); onScrollListener.ScrolledDownEvent += (sender, e) => { HideKeyboard(); }; recyclerView.AddOnScrollListener(onScrollListener); viewModel.Messages.CollectionChanged += (sender, args) => { recyclerView.SmoothScrollToPosition(viewModel.Messages.Count - 1); }; sendBtn.Click += async(sender, e) => { if (chatbox.Text == "") { return; } await viewModel.SendMessageAsync(chatbox.Text); chatbox.Text = ""; HideKeyboard(); }; return(view); }