RecyclerView无法应用于FlexboxLayoutManager

时间:2018-10-05 20:44:40

标签: android android-recyclerview

我正在尝试使用FlexboxLayoutManager,我按照教程进行操作,但是遇到了这个问题:

setLayoutManager(android.support.v7.widget.RecyclerView.LayoutManager) 无法将RecyclerView中的内容应用于(com.google.android.flexbox.FlexboxLayoutManager)

这是我的代码:

  FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(FreightResultActivity.this);
  layoutManager.setFlexDirection(FlexDirection.COLUMN);
  layoutManager.setJustifyContent(JustifyContent.FLEX_END);
  recyclerView.setLayoutManager(layoutManager);

4 个答案:

答案 0 :(得分:5)

如果您使用的是最新版本的Flexbox(1.1.0),它将使用AndroidX,因此 mon <- mongo(collection = "collectionname", db = "db name", url = "mongodb://localhost:27017") # Create a reactive element. Changes when the user input changes data.for.table <- reactive({ # Build a query that concatenates value of input$doc_id to other strings query.foo <- paste0('{"doc_type" : {"', input$doc_id, '" : ["x", "y"]} }' ) # Retrieve data mon$find(query = query.foo, limit = 100) }) output$mydata <- renderDataTable({ data.for.table() }) 实际上扩展了FlexboxLayoutManager,这可能导致此异常。尝试迁移到androidx;使用androidx.recyclerview.widget.RecyclerView.LayoutManager作为recyclerview依赖项应该可以解决您的问题。 Android Studio在“重构”下具有“迁移到AndroidX”功能,您可以使用该功能进行迁移。

答案 1 :(得分:1)

请注意,从1.1.0版开始,该库(实现'com.google.android:flexbox:1.1.0')应与AndroidX一起使用。如果您使用的是1.1.0或更高版本,请迁移到AndroidX。

如果您尚未迁移到AndroidX,请使用库版本1.0.0(实现'com.google.android:flexbox:1.0.0')。

答案 2 :(得分:1)

如果您尚未迁移到AndroidX,请使用库版本1.0.0(实现'com.google.android:flexbox:1.0.0')。 这样解决了这个问题

答案 3 :(得分:0)

上面的Flexbox版本(包括 1.1.0 )仅支持与 AndroidX 一起使用,因此您有两种解决方案:

  1. 将您的项目迁移到AndroidX。

  1. 使用 1.0.0 版本的flexbox,即将build.gradle中的当前实现替换为以下内容。

implementation 'com.google.android:flexbox:1.0.0'

我建议您使用第二种解决方案。

谢谢,我想这会有所帮助。