Async и RecyclerView для отображения списка при получении данныхAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Async и RecyclerView для отображения списка при получении данных

Сообщение Anonymous »

Я новичок в Android. У меня возникла проблема с отображением элементов списка в RecyclerView.
Я надеялся отобразить список один за другим и добавить его, пока он еще загружается. Но происходит следующее: список появится после того, как все элементы будут выбраны.
Вот мой фрагмент

Код: Выделить всё

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_lock_list, container, false)
val recyclerView = view.findViewById(R.id.list)

for(device in devices) {
fetchBuildingAddress(device)
}

if (recyclerView is RecyclerView) {
with(recyclerView) {
layoutManager = LinearLayoutManager(context)
adapter = deviceRecyclerViewAdapter
}
}

return view
}

private fun fetchBuildingAddress(device: Device) {
deviceWearableService.getBuilding(device.buildingId) {
when(it) {
is DeviceWearableServiceImpl.State.Success -> {
val buildingName = it.resources.buildingAddress.address1

val deviceBuilding = DeviceBuillding(device, buildingName)
deviceRecyclerViewAdapter.insertDevice(deviceBuilding)
}
else -> {
// TODO: ERROR STATE
}
}

}

}
А в моем InsertDevice я просто вызываю notifyItemInserted в адаптере.

Код: Выделить всё

fun insertDevice(updateDeviceBuilding: DeviceBuillding) {
deviceBuilding.add(updateDeviceBuilding)
notifyItemInserted(deviceBuilding.size - 1 )
}
Мне также были бы интересны более эффективные подходы.

Подробнее здесь: https://stackoverflow.com/questions/694 ... ching-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»