如何在单个活动中水平排列多个图像

时间:2018-08-27 06:23:24

标签: android image staggeredgridlayoutmanager

我是Android新手,我开发了一个应用程序,其中我必须使用交错的recycleview完成的单个活动的水平显示图像,但是变得像这样。

enter image description here

但是我想像这样设计作为活动的一部分。

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以使用GridLayoutManager轻松地做到这一点。使用SpanSizeLookup来控制行/列。对于您的情况,您必须使用HORIZONTAL方向。 SpanSizeLookup将帮助您控制HORIZONTAL GridLayoutManager中每一列中的行。

 GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), NUM_OF_ROW, LinearLayoutManager.HORIZONTAL, reverseOrder);

    GridLayoutManager.SpanSizeLookup spanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
              // for position 0 use only one row. for this position it will take all rows
            if (position  == 0) {
                 return NUM_OF_ROW;
            }

            return 1;
        }
};

Here是有关不同版式管理器实现的博客文章。

我已经在Github上上传了repo,涉及诸如LinearLayoutManagerGridLayoutManagerStaggeredGridLayoutManager之类的LayoutManager的不同用法以及一些高级的RecyclerView用法,如滑动,拖放。您还可以检查

答案 1 :(得分:0)

在您使用RecyclerView的情况下,这是我用于水平排列项目的方式:

 int numberOfColumns = 3; //edit as you want pls
        final GridLayoutManager gridLayoutManager = new GridLayoutManager(this.getContext(), numberOfColumns);
        recyclerView.setLayoutManager(gridLayoutManager);
        recyclerView.setAdapter(adapter);

如果可能,我可能会放弃您的解决方案,但是粘贴一些代码可能会更好。