protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); var persons = new List <Person>(); for (int i = 0; i < 50; i++) { var person = new Person { FirstName = $"FirstName {i}", LastName = $"LastName {i}" }; persons.Add(person); } var linearLayoutManager = new LinearLayoutManager(this); var adapter = new CustomRecyclerViewAdapter(persons); var onScrollListener = new RecyclerViewOnScrollListener(linearLayoutManager); onScrollListener.LoadMoreEvent += OnLoadMore; _recyclerView = FindViewById <RecyclerView>(Resource.Id.recyclerView); _recyclerView.HasFixedSize = true; _recyclerView.AddOnScrollListener(onScrollListener); _recyclerView.SetLayoutManager(linearLayoutManager); _recyclerView.SetAdapter(adapter); _swipeRefreshLayout = FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout); _swipeRefreshLayout.Refresh += OnRefresh; }
void SharedInitialize() { user = CrossSettings.Current.GetValueOrDefaultJson <User>("User"); layoutManager = new LinearLayoutManager(activity); SetLayoutManager(layoutManager); // emptyFeedLayout = FindViewById<LinearLayout>(Resource.Id.emptyFeedLayout); var list = new List <FeedItem>(); if (headerView != null) { list.Add(new FeedItem()); } adapter = new CustomRecyclerViewAdapter <FeedItem>(list, GetView, CreateViewHolder, GetViewType); SetAdapter(adapter); // adapter.NoContentText = "No content yet. Try to follow some profiles."; AddOnScrollListener(new RecyclerViewScrollListener(() => { var visibleItemCount = ChildCount; var totalItemCount = adapter.Items.Count(/*m => m.PostType != NewsFeedPostTypes.Advertisement*/); var pastVisiblesItems = layoutManager.FindFirstVisibleItemPosition(); if ((visibleItemCount + pastVisiblesItems) >= totalItemCount && !LoadingData && totalItemCount > 9 && totalItemCount != 0 && itemsLoaded >= 20) { GetNewsFeedItems(false); } })); GetNewsFeedItems(true); }