3
試圖在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 2016-03-24 06:36:09
@RAHULRSANNIDHI你是否正在重新加載你的'RecyclerView'?因爲此解決方案適用於需要完全重新加載的情況。 – 2016-03-25 20:53:25
做了同樣的錯誤。適合我! – 2018-03-03 09:28:38