如何在单个活动上水平排列多个图像
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上水平扩展