Прокрутка Recyclerview автоматически поднимается вверх (вверху) при подкачке динамических данныхJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Прокрутка Recyclerview автоматически поднимается вверх (вверху) при подкачке динамических данных

Сообщение Anonymous »

Я получаю данные с локального сервера в своем recyclerView, используя стиль разбиения на страницы, т.е. получаю следующую страницу после завершения элементов первой страницы. Я зашел так далеко, но столкнулся с проблемой автоматической прокрутки вверх при переходе на следующую страницу и т. д.
Вот код фрагмента

Код: Выделить всё

public class AVehicleFragment extends Fragment {
Button btnsearch;
RequestQueue requestQueue;
StringRequest stringRequest;
List  vehicleinfos;
RecyclerView recyclerView;
VehiclelistAdapter vehiclelistAdapter;
LinearLayoutManager layoutManager;
int PAGE_SIZE = 20;
int PAGE_NUMBE= 1;
int currentitem,totalitem,scrolleditem;
//RecyclerView.LayoutManager layoutManager;
boolean isScrolling = false;
ProgressBar progressBar;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_avehicle, container, false);
btnsearch = view.findViewById(R.id.btnsearch);
progressBar = view.findViewById(R.id.progressbar);
vehicleinfos = new ArrayList();
recyclerView = view.findViewById(R.id.rvvehilelist);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
isScrolling = true;
recyclerView.scrollToPosition(scrolleditem);
Log.d(TAG, "onScrollStateChanged: ");
}

}

@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentitem = layoutManager.getChildCount();
scrolleditem = layoutManager.findFirstVisibleItemPosition();
totalitem = layoutManager.getItemCount();
if (isScrolling &&(currentitem + scrolleditem==totalitem)){
isScrolling=false;
fetchData();
//  recyclerView.scrollToPosition(scrolleditem);
Log.d(TAG, "onScrollStateChanged: ");
}

}
});

layoutManager = new LinearLayoutManager(getContext());
readInitialvehicle(PAGE_SIZE,PAGE_NUMBE);
recyclerView.scrollToPosition(scrolleditem);
return view;
}

public void readInitialvehicle(int pagesize, int pagenum){

requestQueue = Volley.newRequestQueue(getContext());
String url = MConstant.URL+MConstant.VEHICLEPAGESIZE+pagesize+MConstant.VEHICLEPAGENUMBER+pagenum;

stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i =0;i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»