前提・実現したいこと
RoomとPaging3を用いた開発をしています。
1.DAOの戻り値をPagingSource<Int,item(entityクラス)>
2.Pagerにて、Flow<PagingData<item>>を取得
3.PagingDataAdapterを作成し、接続
という手順でページング処理の実装を試みましたが、
Adapterがうまく接続ができていないようです。
PagingSource型を用いたサンプルコードがネット上にあまり無く、
自力で解決を試みましたが、解決の糸口もわからない状況です。
この問題について分かる方がおられましたら、
ご教示いただけますと幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
W/RecyclerView: No adapter attached; skipping layout
試したこと
1.itemDao.kt
@Query("SELECT * FROM item_table") fun getItem(): PagingSource<Int, item>
MainViewModel.kt
val getItem = dao.getItem()
2.MainActivity.kt
private fun getStream(): Flow<PagingData<item>> { return Pager( config = PagingConfig(pageSize = 10), initialKey = 0 ) { viewModel.getItem }.flow }
3.SampleDataAdapter.kt
class SampleDataAdapter(private val context: Context) : PagingDataAdapter<item, ImageViewHolder>(CALLBACK) { class ImageViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val imageView: ImageView = itemView.findViewById(R.id.image) } override fun onBindViewHolder(holder: ImageViewHolder, position: Int) { //画像取得 val bufferedInputStream = BufferedInputStream(context?.openFileInput(getItem(position)?.image)) val imageResource = BitmapFactory.decodeStream(bufferedInputStream) bufferedInputStream.close() //画像表示 Glide.with(context) .load(imageResource) .error(android.R.drawable.ic_btn_speak_now) .into(holder.imageView) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ImageViewHolder { val itemView = View.inflate(parent.context, R.layout.card_layout, null) return ImageViewHolder(itemView) } } val CALLBACK = object : DiffUtil.ItemCallback<item>() { //略 }
※全文
https://github.com/taku-hisa/PagingTest2
補足情報(FW/ツールのバージョンなど)
roomVersion = '2.3.0-beta01' pagingVersion = '3.0.0-beta01'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。