android 小白又来求教关于 RecyclerView 的问题啦

2016-03-28 11:33:41 +08:00
 pcatzj

一个水平方向的 RecyclerView ,每个 Item 是一个 ImageView ,整体的 width 是 match_parent 的。 现在有三个 item ,总体宽度远小于屏幕宽度。现在怎么让这三个 item 居中,怎么设置。

12089 次点击
所在节点    Android
8 条回复
jedrek
2016-03-28 12:18:08 +08:00
如果你的 item 不会动态增加,这么用 RecyclerView 并不好。 RecyclerView 的设置成 match_parent 也使得 RecyclerView 没啥意义了。偏要这么做也可以的。
使用 RecyclerView.addItemDecoration(...) 可以上下左右及 item 周边添加空白
wenmingvs
2016-03-28 12:38:31 +08:00
可以在 adapter 内,给这三个 imageview 手动设置固定的宽度,这样的话可以让三个 ImageView 很平均的分布在屏幕上
pcatzj
2016-03-28 12:41:26 +08:00
@jedrek 是要动态添加的,另外说错了, width 是 wrap_content 的,用 Decoration 设置了 item 的间距,但是现在它在水平方向上不居中,在 android studio 上面写的 demo 是居中的,但是拷贝到 eclipse 的项目里就不好使了
pcatzj
2016-03-28 12:42:01 +08:00
@wenmingvs 三个 ImageView 是固定宽高的
allan1st
2016-03-28 13:11:33 +08:00
加 paddings 然后 clipToPadding false ,参考 TabLayout 的做法。
pcatzj
2016-03-28 13:39:19 +08:00
@allan1st 但是我要让它水平居中啊,而且 item 的数量时不确定的
EdiTurn
2016-03-28 17:10:05 +08:00
RecyclerView 的 layout_width 设为 wrap_content , layout_gravity 设为 center_horizontal 。
记得用最新的 support library.
pcatzj
2016-03-29 09:00:13 +08:00
@EdiTurn 现在解决了,在 ItemDecorarion 里动态计算了四边边距。估计我的包不是最新的,但是公司的项目,我就不想动了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/266795

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX