首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用集合填充回收器

无法使用集合填充回收器
EN

Stack Overflow用户
提问于 2019-09-22 10:26:05
回答 1查看 42关注 0票数 0

我希望RecyclerView的每一行都显示集合中一个文档的所有详细信息。

我使用了完全相同的适配器代码,只是使用了不同的类来序列化。它工作得很好。但在这种情况下,它根本不起作用。但是代码就是不能填充视图。

我的数据库如下:

代码语言:javascript
复制
reviews--Orange--vault--|
                        |-firstReview
                        |-secondReview
                        |-sjdeifhaih5aseoi
                         ...

我的查询和片段中的适配器:

代码语言:javascript
复制
override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)

        viewModel = ViewModelProviders.of(this).get(ReviewViewModel::class.java)

        val reviewQuery = FirebaseFirestore.getInstance().collection("reviews").document("Orange").collection("vault")
        val reviewBurnOptions = FirestoreRecyclerOptions.Builder<Review>()
            .setQuery(reviewQuery, object : SnapshotParser<Review> {
                override fun parseSnapshot(snapshot: DocumentSnapshot): Review {
                    return snapshot.toObject(Review::class.java)!!.also {
                        it.id = snapshot.id
                    }
                }
            }).setLifecycleOwner(this)

        reviewRecycler.adapter=ReviewBurnAdapter(reviewBurnOptions.build())}

    class ReviewBurnAdapter(options: FirestoreRecyclerOptions<Review>) :
        FirestoreRecyclerAdapter<Review, ReviewBurnAdapter.ViewHolder>(options) {

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {//I never reach this point
            val view = LayoutInflater.from(parent.context).inflate(R.layout.row_review, parent, false)
            return ViewHolder(view)
        }

        override fun onBindViewHolder(holder: ViewHolder, position: Int, item: Review) {
            holder.apply {
                holder.itemView.rowAuthor.text = item.author
            }
        }


        inner class ViewHolder(override val containerView: View) :
            RecyclerView.ViewHolder(containerView), LayoutContainer
    }

要序列化的类:

代码语言:javascript
复制
import com.google.firebase.firestore.Exclude
import com.google.firebase.firestore.PropertyName
import java.util.*

class Review(
    @get:Exclude var id: String = "DEVIL",

    @JvmField @PropertyName(AUTHOR) var author: String = "",
    @JvmField @PropertyName(WRITEUP) var writeup: String = "",
    //@JvmField @PropertyName(MOMENT) var moment:Date=Date(1997,12,1),
    @JvmField @PropertyName(RATING) var rating: Int = 0
) {
    companion object {
        const val AUTHOR = "author"
        const val WRITEUP = "writeup"
        const val RATING = "rating"
        //const val MOMENT="moment"
    }
}

而且,没有错误,只是它永远不会到达生成和填充viewHolders的代码。

EN

回答 1

Stack Overflow用户

发布于 2019-09-22 18:57:32

好的,修复非常简单,就像@Prashant Jha指出的那样,我还没有为我的RecyclerView指定布局管理器-_-

为清楚起见,我添加了app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager“

添加到我的xml中,一切都正常了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58045549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档