![](/img/trans.png)
[英]E/RecyclerView: No adapter attached; skipping layout Kotlin Android
[英]Android RecyclerView No adapter attached (Kotlin)
我試圖在我的片段recyclerview
中顯示項目,但它不起作用。
E/RecyclerView:沒有附加適配器; 跳過布局。 << 這是日志消息
我正在使用數據綁定、koin 和一些基礎。
我認為問題出現在片段|中的這段代碼中:
override fun initStartView() {
viewDataBinding.recyclerView.layoutManager = LinearLayoutManager(activity)
viewDataBinding.recyclerView.setHasFixedSize(true)
viewDataBinding.recyclerView.adapter = postAdapter
}
這是一些 BaseFragment
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
viewDataBinding = DataBindingUtil.inflate(inflater, layoutResourceId, container, false)
initStartView()
initDataBinding()
initAfterBinding()
viewDataBinding.executePendingBindings()
return inflater.inflate(layoutResourceId, container, false)
}
適配器
private var postList = ArrayList<Post>()
fun setPost(postList: ArrayList<Post>) {
Log.d("Msg", "In setPost")
this.postList = postList
Log.d("Data", "${postList[0].title}")
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = PostHolder(parent)
override fun getItemCount(): Int {
return postList.size
}
override fun onBindViewHolder(holder: PostHolder, position: Int) {
postList[position].let { data ->
with(holder) {
title.text = data.title
text.text = data.text
create_at.text = data.created_at
owner.text = data.owner
}
}
}
class PostHolder(parent: ViewGroup) : RecyclerView.ViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.post_item, parent, false)
) {
val title = itemView.text_view_title
val text = itemView.text_view_text
val owner = itemView.text_view_owner
val create_at = itemView.text_view_create_time
}
部分 Koin 模塊
var adapterPart = module {
factory {
PostAdapter()
}
感謝您的幫助
E/RecyclerView:沒有附加適配器; 跳過布局。
當視圖之間的連接失敗時會發生此錯誤(父子作為活動片段)。
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
viewDataBinding = DataBindingUtil.inflate(inflater, layoutResourceId, container, false)
initStartView()
initDataBinding()
initAfterBinding()
viewDataBinding.executePendingBindings()
//inflater.inflate(layoutResourceId, container, false)
//You already created binding of fragment, thus you just return binding.root (container of fragment)
return viewDataBinding.root
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.