сохранять элементы Recyclerview, отображаемые при повторном открытии BottomSheetLayout - PullRequest
0 голосов
/ 01 ноября 2018

у меня есть layout, так как BottomSheetLayout содержит RecyclerView, в моем коде я отображаю некоторые изображения, которые я получаю от API, вот метод установки адаптера в RecyclerView.

 private void setAdapterForRecyclerView(final List<Wallpaper> wlls) {
        arrayList = wlls;
        if (myAdapter == null) {
            myAdapter = new MyAdapter(wlls, FullScreen.this, new RecyclerViewClickListener() {
                @Override
                public void onClick(View view, Wallpaper wallpaper) {

                }

                @Override
                public void onClick(View view, Category categories) {

                }
            });
            recyclerView.setAdapter(myAdapter);
        } else {
            // int position = myAdapter.getItemCount();
            myAdapter.getItems().addAll(wlls);
            myAdapter.notifyDataSetChanged();
        }
        progressbar.setVisibility(View.GONE);
    }

У меня есть класс AsyncTask, где я получаю данные и сохраняю их в ArrayList

@Override
        protected void onPostExecute(List<Wallpaper> wallpapers) {
            super.onPostExecute(wallpapers);
            setAdapterForRecyclerView(wallpapers);
        }

Мой выпуск

Когда я отображаю BottomSheetLayout все работает нормально, я вижу все изображения в Recyclerview, но когда я закрываю / отклоняю , используя (кнопка назад или проведите пальцем вниз) и отображаю BottomSheetLayout снова, все элементы Recyclerview не отображаются, чтобы показать это снова, я должен закончить упражнение и открыть его снова.

что я пробовал:

bottomSheet.addOnSheetDismissedListener(new OnSheetDismissedListener() {
            @Override
            public void onDismissed(BottomSheetLayout bottomSheetLayout) {
                arrayList = myAdapter.getItems();
                isCancaled = true;
            }
        });



if (isCancaled) {
            setAdapterForRecyclerView(arrayList);
        } else {
            _fetchDataSimilar.execute();
        }

но все равно не работает, пожалуйста, кто-нибудь может мне помочь

...