如何使用android中的flexboxlayoutmaanger创建instagram explore这样的布局?
我正在尝试创建一个显示instagram标签等图像的recyclerview。我已经检查了这个问题,但它似乎不起作用。我尝试使用gridlayoutmanager,但无法使其工作。如何使用google的FlexboxLayoutManager或自定义布局管理器重新创建它?希望你能回答。尊敬。您可以使用Nick Butcher作为如何使用android中的flexboxlayoutmaanger创建instagram explore这样的布局?,android,android-layout,android-recyclerview,gridlayoutmanager,Android,Android Layout,Android Recyclerview,Gridlayoutmanager,我正在尝试创建一个显示instagram标签等图像的recyclerview。我已经检查了这个问题,但它似乎不起作用。我尝试使用gridlayoutmanager,但无法使其工作。如何使用google的FlexboxLayoutManager或自定义布局管理器重新创建它?希望你能回答。尊敬。您可以使用Nick Butcher作为回收视图的布局管理器 在这里,我使用它来创建下面的示例布局 这对我很有效 注:我在这里使用kotlin:)。根据上述答案使用。 要显示类似instagram的网格,请使
回收视图的布局管理器
在这里,我使用它来创建下面的示例布局
这对我很有效
注:我在这里使用kotlin:)。根据上述答案使用。
要显示类似instagram的网格,请使用以下代码
var spannedGridLayoutManager = SpannedGridLayoutManager(
orientation = SpannedGridLayoutManager.Orientation.VERTICAL,
spans = 3
)
spannedGridLayoutManager.itemOrderIsStable = true
spannedGridLayoutManager.spanSizeLookup =
SpannedGridLayoutManager.SpanSizeLookup { position ->
var x = 0
if (position % 9 == 0) {
x = position / 9
}
when {
position == 1 || x % 2 == 1 || (position - 1) % 18 == 0 ->
SpanSize(2, 2)
else ->
SpanSize(1, 1)
}
}
recyclerView.layoutManager = spannedGridLayoutManager
recyclerview.adapter = searchGridAdapter
是的,我用过,但里面有很多错误。例如,当只有一个项目时,它不会显示。当我在清除并添加新项目后调用notifydatasetchanged时,它会抛出arrayoutofbounds异常。“我会检查一下,如果有用的话会告诉你。我找不到如何使用第一个库来实现它,我认为使用第二个库是不可能的。”WebDiva Priyanka的第二个答案帮助我在2020年3月创建了这个库。所以它对我有效!是的,我试过上面回答中提到的这个。尝试将recyclerview中的项目数设置为1,或使用notifydatasetchanged重新加载recyclerview。它在前一种情况下没有出现,在后一种情况下崩溃。
var spannedGridLayoutManager = SpannedGridLayoutManager(
orientation = SpannedGridLayoutManager.Orientation.VERTICAL,
spans = 3
)
spannedGridLayoutManager.itemOrderIsStable = true
spannedGridLayoutManager.spanSizeLookup =
SpannedGridLayoutManager.SpanSizeLookup { position ->
var x = 0
if (position % 9 == 0) {
x = position / 9
}
when {
position == 1 || x % 2 == 1 || (position - 1) % 18 == 0 ->
SpanSize(2, 2)
else ->
SpanSize(1, 1)
}
}
recyclerView.layoutManager = spannedGridLayoutManager
recyclerview.adapter = searchGridAdapter