在我的应用程序中,我使用LinearLayoutManager进行水平回收查看 . recyclerview由Relative布局包围,其宽度为match_parent . 我从API获取数据并填充recyclerview . 如果API响应返回单个数据项,我需要在recyclerview的中心显示该项 . 如果API响应返回两个项目,我需要为这两个项目平均分配recyclelerview的空间 . 如果API响应返回两个以上的项目,则项目之间应该具有相同的间隔 . 请参考以下屏幕截图:
我尝试过项目装饰和自定义布局管理器,但没有用 . 建议更好的解决方案 .
1 回答
您可以将
gravity
设为center
,将width
设为match_parent
. 这将使物品粘在中心,而如果存在多个物品,则会使物品从中心扩散 . 要使可点击区域保持相等,可以使用LinearLayoutManager
作为recyclerView的布局管理器 .LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); RecyclerView myList = (RecyclerView) findViewById(R.id.my_recycler_view); myList.setLayoutManager(layoutManager);
对于recyclerView中使用的项目,您可以将宽度保持为
0dp
,并将layout_weight
设为1
. 所以在这里,所有项目都有相同的权重,帮助您实现目标 . 如果有效,请告诉我 .