• 1000 1004 *
and expanded:
введите описание изображения здесь
Макет внешнего элемента recyclerView содержит только textView, флажок и невидимый recyclerview, который становится видимым при щелчке по элементу.
Я объявил внешний адаптер следующим образом:
photosVideosAdapter = new PhotosVideosAdapter(getContext(),new ArrayList<PhoneAlbum>());
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(photosVideosAdapter);
Вот onBindViewHolder внешнего адаптера:
holder.tvFolder.setText(phoneAlbums.get(position).getName());
ArrayList<PhonePhoto> phonePhotos = phoneAlbums.get(position).getAlbumPhotos();
InnerAdapter innerAdapter = new InnerAdapter(context, phonePhotos);
holder.innerRecyclerView.setHasFixedSize(true);
holder.innerRecyclerView.setLayoutManager(new GridLayoutManager(context,3));
holder.innerRecyclerView.setAdapter(innerAdapter);
.... OnClickMethod to toggle visibility of innerRecyclerView
И onBindViewHolder для внутреннего адаптера:
Glide.with(context)
.load(phonePhotos.get(position).getPhotoUri())
.override(200,200)
.into(holder.imgThumbnail);
Проблема в том, что если внутренний recyclerView содержит более 200 элементов, приложение вылетает из-за большого использования памяти. Но, как видите, я использую glide для загрузки изображений, а также RecyclerView не должен создавать все представления сразу. Но что я могу видеть, так это то, что внутренний RecyclerView создает все представления элементов одновременно, что приводит к тому, что приложение ломает sh.
Как я могу исправить эту проблему? Любая помощь будет принята с благодарностью.