У меня RecyclerView
с Adapter
.Рядом с RecyclerView
находится Button
, который откроет новый Activity
(форма, подобная макету), чтобы создать новый элемент для этого RecyclerView
.Когда я создаю этот элемент, я вызываю методы ниже, чтобы обновить мои данные.Данные есть, и это работает как задумано.Я реализовал LinearSnapHelper
и RecyclerView
элемент будет привязываться к центру, если вы перетащите его .Это инициирует выбор элемента и считывает данные из привязанного элемента.
Проблема возникает, если данные пусты .
Я создаю новый элемент, как обычно, нажав Button
, и он успешно создан.Тогда мой RecyclerView
содержит один пункт.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *] Мне нужно просто нажать несколько раз на пиксель , чтобы вызвать onScrollStateChangedListener
на моем RecyclerView
для загрузки данных первого элемента.
Но этот маленький свиток заставляет мой элемент recyclerView исчезать RV пуст (ТОЛЬКО В GUI) (данные есть, они выбраны и все в порядке (программно)).
Я даже добавил журнал в onBindViewHolder()
, и он выполняетсясразу после notifyDataSetChanged()
и мой RecyclerView
все еще пуст в графическом интерфейсе.
Если я прокомментирую, что если оператор с прокруткой, элемент появится в recyclerView со всеми загруженными данными, но я должен прокрутить его (# 1- Он изменит фон элемента и # 2 - он загрузит данные элемента в переменную Singleton.
В чем проблема?
ObjectCreationActivity:
setObjects(objectsJSONArray)
setResult(REFRESH_CODE)
finish()
Фрагменты родительского элементаАктивность:
if (resultCode == REFRESH_CODE){
createLog("REFRESH_CODE", "isTrue()")
if (((pagerAdapter!!.getItem(1)) as ObjectFragment).view != null){
((pagerAdapter!!.getItem(1)) as ObjectFragment).refreshFragmentData()
}
}
Фрагмент:
fun refreshFragmentData(){
recylerViewAdapter.refreshData()
}
Адаптер:
fun refreshData(){
createLog("Adapter", "Refreshing Data")
createLog("Adapter", adapterObjectList.toString()) //here it contains 1 item
adapterObjectList = Singleton.getInstance(fragment.context!!).objectList //Refreshing list for second time to be sure
notifyDataSetChanged()
if (adapterObjectList.size == 1){
recyclerView.smoothScrollBy(5, 0)
}
}