2016-06-29 1 views
1

Я пытаюсь реализовать разбиение на страницы для своего приложения, и я частично успешно. Когда я вызываю свой сервер, я получаю около 6 элементов, и я добавляю эти элементы в recyclerview. Когда пользователь приходит и прокручивает последний элемент, я делаю еще один вызов на сервер, и я извлекаю страницы 2 и добавляю новые элементы в существующий список.Как добавить список новых элементов в список ресайклеров для списка exisitng, не переходя в начало списка

Здесь я могу успешно добавить новые товары. Но проблема в том, что я звоню adapter.notifyDataSetChanged(), поэтому он переходит к первому элементу после добавления новых элементов.

Как я могу остановить его от перехода в верхнюю часть списка, что я должен назвать иначе, чем adapter.notifyDataSetChanged()? Ниже мой код установки адаптера

toadlineAdapter = new ToadlineAdapter(mContext, getData()); 
recyclerView.setAdapter(toadlineAdapter); 
toadlineAdapter.notifyDataSetChanged(); 
toadlineAdapter.setClickListener(this); 
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
+0

ОТСУТСТВУЕТ НЕОБХОДИМО ЗВОНОК «notifyDataSetChanged» ПРАВИЛЬНО после того, как вы установите этот переход к «recyclerView» !!!!!!!!!!!! ... также где код добавления элементов? – Selvin

+0

... также из 'RecyclerView.Adapter.notifyDataSetChanged()' docs - * Если вы пишете адаптер, всегда будет более эффективно использовать более конкретные события изменений, если сможете. Положитесь на notifyDataSetChanged() как на крайний случай. *** .... Вы даже пытались его прочитать? – Selvin

ответ

-1

Нет необходимости извещать при инициализации адаптера:

toadlineAdapter = new ToadlineAdapter(mContext, getData()); 
recyclerView.setAdapter(toadlineAdapter); 
// remove below line 
// toadlineAdapter.notifyDataSetChanged(); 
toadlineAdapter.setClickListener(this); 
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

И оповещать при добавлении элементов, напр:

YOURLIST.add(YOUROBJECT); 
toadlineAdapter.notifyDataSetChanged();