V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pcatzj
V2EX  ›  Android

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

  •  
  •   pcatzj · 2016-03-28 11:33:41 +08:00 · 11496 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 条回复    2016-03-29 09:00:13 +08:00
    jedrek
        1
    jedrek  
       2016-03-28 12:18:08 +08:00
    如果你的 item 不会动态增加,这么用 RecyclerView 并不好。 RecyclerView 的设置成 match_parent 也使得 RecyclerView 没啥意义了。偏要这么做也可以的。
    使用 RecyclerView.addItemDecoration(...) 可以上下左右及 item 周边添加空白
    wenmingvs
        2
    wenmingvs  
       2016-03-28 12:38:31 +08:00
    可以在 adapter 内,给这三个 imageview 手动设置固定的宽度,这样的话可以让三个 ImageView 很平均的分布在屏幕上
    pcatzj
        3
    pcatzj  
    OP
       2016-03-28 12:41:26 +08:00
    @jedrek 是要动态添加的,另外说错了, width 是 wrap_content 的,用 Decoration 设置了 item 的间距,但是现在它在水平方向上不居中,在 android studio 上面写的 demo 是居中的,但是拷贝到 eclipse 的项目里就不好使了
    pcatzj
        4
    pcatzj  
    OP
       2016-03-28 12:42:01 +08:00
    @wenmingvs 三个 ImageView 是固定宽高的
    allan1st
        5
    allan1st  
       2016-03-28 13:11:33 +08:00
    加 paddings 然后 clipToPadding false ,参考 TabLayout 的做法。
    pcatzj
        6
    pcatzj  
    OP
       2016-03-28 13:39:19 +08:00
    @allan1st 但是我要让它水平居中啊,而且 item 的数量时不确定的
    EdiTurn
        7
    EdiTurn  
       2016-03-28 17:10:05 +08:00
    RecyclerView 的 layout_width 设为 wrap_content , layout_gravity 设为 center_horizontal 。
    记得用最新的 support library.
    pcatzj
        8
    pcatzj  
    OP
       2016-03-29 09:00:13 +08:00
    @EdiTurn 现在解决了,在 ItemDecorarion 里动态计算了四边边距。估计我的包不是最新的,但是公司的项目,我就不想动了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5353 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:51 · PVG 14:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.