Первый вопрос в сообществе:)
Я создаю приложение, в котором у меня есть MainActivity и фрагменты везде. Внутри фрагмента у меня есть еще один фрагмент, который имеет RecyclerView. Я загружаю элементы переработчика из Cloud Firebase, и он отлично работает!
Проблема, с которой я сталкиваюсь, - это время, необходимое для загрузки при каждом закрытии и вводе одного и того же фрагмента.
Например: когда я впервые загружаю этот фрагмент, требуется секунда или две, чтобы получить данные и проанализировать их в объектах и т. Д. c и * c ..., чтобы, наконец, отобразить recyclerView, как я имею в виду. НО, когда я нажимаю кнопку «Назад» и снова вводю фрагмент, это снова занимает 2 секунды (приблизительно).
Можно ли сделать запрос только один раз, сохранить Адаптер (или ответ), а затем установить его снова?
Я читал о onSaveInstanceState (), я читал о SavedInstanceState, я пытался установить счетчик, установить логическое значение, но я все еще не могу найти способ хранить информацию в так, что он все еще жив, когда я закрываю фрагмент.
Надеюсь, что это имеет смысл, заранее спасибо!
РЕДАКТИРОВАТЬ:
fun getObjects(): FirestoreRecyclerAdapter<Object, ObjectViewHolder> {
val firestore = FirebaseFirestore.getInstance()
val query = firestore.collection("collectionPath")
val response = FirestoreRecyclerOptions.Builder<Object>()
.setQuery(query, Object::class.java).build()
val adapter = object : FirestoreRecyclerAdapter<Object, ObjectViewHolder>(response) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ObjectViewHolder {
val view = LayoutInflater.from(parent.context).inflate(
R.layout.element_object,
parent, false
)
return ObjectViewHolder(view)
}
override fun onBindViewHolder(holder: ObjectViewHolder, position: Int, object: Object) {
val title = (position + 1).toString() + ". " + object.title
holder.itemView.element_object_title.text = title
val image = holder.itemView.element_object_image
Picasso.with(holder.itemView.context).load(object.image).into(image)
holder.object = object
}
}
return adapter
}