С помощью прокрутки RecyclerView мои предметы исчезли - PullRequest
0 голосов
/ 13 октября 2018

У меня 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)
            }
        }
...