Пытается реализовать разбиение на страницы в RecyclerView, но когда RecyclerView достигает своего конца, а приложения начинают загружать новую часть данных, RecyclerView перескакивает на нее сверху.RecyclerView перескакивает вверх, когда разбивается на страницы
cityListRecyclerview = (RecyclerView) findViewById(R.id.recyclerView);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
cityListRecyclerview.setLayoutManager(linearLayoutManager);
loadFromUrl();
cityListRecyclerview.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
visibleItemCount = linearLayoutManager.getChildCount();
totalItemCount = linearLayoutManager.getItemCount();
pastVisiblesItems = linearLayoutManager.findFirstVisibleItemPosition();
if (loading) {
if ((visibleItemCount+pastVisiblesItems) >= totalItemCount) {
loading = false;
page++;
url += Api.OFFSET_URL + String.valueOf(page);
loadFromUrl();
Log.v("LIST", "Last Item Wow !");
}
}
}
});
Метод loadFromUrl():
public void loadFromUrl() {
Ion.with(MainActivity.this)
.load(url)
.asJsonObject()
.setCallback(new FutureCallback<JsonObject>() {
@Override
public void onCompleted(Exception e, JsonObject jsonObject) {
progressDialog.dismiss();
JsonArray jsonArray = jsonObject.getAsJsonArray("flats");
jsonObjectToPass = jsonArray;
for(int i = 0; i < jsonArray.size(); i++) {
JsonElement obj = jsonArray.get(i);
JsonObject jsonObject1 = obj.getAsJsonObject();
............ here parsing JSON object and nothing interesting
adapter = new OffersAdapter(MainActivity.this, cityList);
adapter.setClickListener(MainActivity.this);
loading = true;
cityListRecyclerview.setAdapter(adapter);
}
}
});
}
XML-файл:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
И Gradle файл:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.0.0'}
Так может кто-нибудь сказать, что я делать не так?
Я использую то же самое, но снова вид ресайклера перемещается в начало. – RAHULRSANNIDHI
@RAHULRSANNIDHI Вы полностью перезагружаете «RecyclerView»? Потому что это решение работает, когда вам нужно полностью перезагрузить его. –
Выполнял ту же ошибку. Работает на меня! –