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

Posted

技术标签:

【中文标题】如何在单个活动上水平排列多个图像【英文标题】:How to arrange multiple images horizontally on single activity 【发布时间】:2019-02-01 15:41:31 【问题描述】:

我是 android 新手,我开发了一个应用程序,我必须在使用交错回收视图完成的单个活动上显示图像水平视图,但现在是这样。

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

【问题讨论】:

请粘贴代码 感谢@Pradeep Kumar 的建议,我已经完成了剩下的设计部分,唯一的问题是我无法显示提出的问题 使用自定义布局管理器为您的 RecyclerView 显示您想要的项目。 【参考方案1】:

您可以使用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,关于不同的 LayoutManager 用法,如 LinearLayoutManager、GridLayoutManager、StaggeredGridLayoutManager 和一些高级 RecyclerView 用法,如滑动、拖放。你也可以检查一下

【讨论】:

【参考方案2】:

如果您使用 RecyclerView,这是我用于水平排列项目的方法:

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

我可能不喜欢你的解决方案,如果是这样,请原谅,但粘贴你的一些代码可能会更好。

【讨论】:

StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3, LinearLayoutManager.HORIZONTAL); recyclerViewStaggered.setLayoutManager(staggeredGridLayoutManager); StaggeredAdapter customAdapter = new StaggeredAdapter(getActivity(), personImages); recyclerViewStaggered.setAdapter(customAdapter); 如果方向是垂直的,spanCount 是列数。如果方向是水平的,则 spanCount 是行数。我不认为你注意到这一点???显然您的代码已设置!这就是你需要做的:将水平更改为垂直 那么跨度数呢?我要不要使用它 是的,您需要跨度计数!它有助于设置将在列中显示多少张图片,然后其余图片将转到下一行。

以上是关于如何在单个活动上水平排列多个图像的主要内容,如果未能解决你的问题,请参考以下文章

在 ipad 上水平显示 UIScrollview 中的图像并在点击时获取图像标签

如何使用 transform:translateX 在父元素上水平移动子元素 100%

如何更改文本框的大小,以便它可以使用tkinter和python在UI上水平扩展

添加手势识别器以允许在 Swift 中的 MapView 上水平滑动

仅在 iPhone 上水平添加 UIPanGesture

使用自动布局在屏幕上水平均匀分布按钮。它们之间的间距不相等