我是Kotlin的新手,我想使用Facebook的光刻库,我找到了创建回收站配置的java方法,但是我无法在Kotlin中做同样的事情。
RecyclerCollectionComponent.create(c)
.disablePTR(true)
.recyclerConfiguration(new ListRecyclerConfiguration(LinearLayoutManager.HORIZONTAL, /*reverse layout*/ false, SNAP_TO_CENTER))
.section(
DataDiffSection.create(c)
.data(generateData(32))
.renderEventHandler(ListSection.onRender(c))
.build())
.canMeasureRecycler(true))
那么我将如何在Kotlin中做到这一点?到目前为止,我有这个,但是它不起作用。
.recyclerConfiguration(
ListRecyclerConfiguration.create()
.linearLayoutInfoFactory(LinearLayoutInfoFactory {
c, LinearLayoutManager.HORIZONTAL, false
})
.build()
)
它似乎不喜欢Linearlayoutinfo工厂构造函数,我检查了github示例并找不到它。如果我对从Java到Kotlin的转换有更多的了解,我可能会理解如何轻松地做到这一点。
编辑:来自Android Studio的错误:
意外的标记(使用';'分隔同一行中的表情)
我认为这是由于语法的原因,但是我认为真正的问题在于LinearLayoutInfoFactory的构造。
答案 0 :(得分:0)
我设法解决了这个问题,问题在于创建回收站配置,我试图初始化接口,而不是接口的实际实现。
RecyclerCollectionComponent.create(c)
.recyclerConfiguration(
ListRecyclerConfiguration.create()
.orientation(LinearLayoutManager.HORIZONTAL)
.snapMode(0)
.build()
)
.section(
DataDiffSection.create<DiscoverListDataModel>(SectionContext(c))
.data(dataModels)
.renderEventHandler(DiscoverListComponent.onRender(c))
.onCheckIsSameItemEventHandler(DiscoverListComponent.isSameItem(c))
.onCheckIsSameContentEventHandler(DiscoverListComponent.isSameContent(c))
.build()
)
.canMeasureRecycler(true)
.disablePTR(true)
.build()