首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android FlexboxLayoutManager最后一行对齐

Android FlexboxLayoutManager最后一行对齐
EN

Stack Overflow用户
提问于 2021-02-23 00:30:25
回答 2查看 719关注 0票数 1

我试图使用FlexboxLayoutManager来布局方形形状的项目。但是,最后一行只有两个项,使它们对齐。这让事情看起来非常糟糕。我的密码在下面。有办法解决这个问题吗?

代码语言:javascript
运行
复制
FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(activity);
layoutManager.setFlexDirection(FlexDirection.ROW);
layoutManager.setJustifyContent(JustifyContent.SPACE_BETWEEN);

EN

回答 2

Stack Overflow用户

发布于 2022-03-16 12:22:03

这很脏,但很管用。将FlexLayout放置在FramLayout中,但不要忘记将布局参数设置为WRAP_CONTENT,中心位于水平轴上。

代码语言:javascript
运行
复制
flexbox=new FlexboxLayout(context);
flexbox.setFlexDirection(FlexDirection.ROW);
flexbox.setFlexWrap(FlexWrap.WRAP);
flexbox.setJustifyContent(JustifyContent.FLEX_START);

FrameLayout container=new FrameLayout(context);
LayoutParams lp=new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
lp.gravity= Gravity.CENTER_HORIZONTAL;
container.addView(flexbox,lp);
票数 0
EN

Stack Overflow用户

发布于 2022-09-08 17:36:47

正确的方法是将justifyContent设置为SPACE_BETWEEN。这将在一行中容纳同样多的项目,在两行之间留下相同宽度的空空间(从而对项目进行居中)。最后一行的“勒死人”将左对齐。

Kotlin

代码语言:javascript
运行
复制
val layoutManager = FlexboxLayoutManager(context).apply {
    justifyContent = JustifyContent.SPACE_BETWEEN
}

Java

代码语言:javascript
运行
复制
FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(context);
layoutManager.setJustifyContent(JustifyContent.SPACE_BETWEEN);

您可能需要调整recyclerView的左、右填充,因为不计算最左和最右的空格(第一个和最后一个视图将触及父视图的边界)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66325405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档