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

请教一下 Android 水平按钮列表如何实现(按钮数量不确定)

  •  
  •   Bensendbs · 2015-12-19 18:59:31 +08:00 · 9700 次点击
    这是一个创建于 3252 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想实现一个类似美图秀秀底部的横向滑动按钮列表,因为按钮的数量并不确定,需要动态往里面加,所以简单的用 LinearLayout 什么的不太好实现。

    目前是这样想的,使用 HorizontalListView 开源库,把按钮加进去。但是不确定这个这样实现够不够 native ,觉得只是几个按钮就用到 ListView 里面会不会太麻烦,而且看了一下项目介绍好像这个库本身也有些问题。

    10 条回复    2015-12-22 11:10:20 +08:00
    KNOX
        1
    KNOX  
       2015-12-19 19:16:50 +08:00   ❤️ 1
    我觉得可以用 RecyclerView ,写个简单的 Adapter 麻烦吗?
    Bensendbs
        2
    Bensendbs  
    OP
       2015-12-19 19:25:12 +08:00
    @KNOX 好的 我去了解下
    shyling
        3
    shyling  
       2015-12-19 19:40:05 +08:00 via Android   ❤️ 1
    recyclerview 配上横向 linearlayout
    MiniGhost
        4
    MiniGhost  
       2015-12-19 20:48:16 +08:00
    就 HorizontalScrollView 里面套一个 LinearLayout ,然后往里面动态 addView 就可以了吧
    每个按钮如果有 icon ,反正也很小,无所谓什么内存问题吧

    RecyclerView 滑动的过程还需要重新去 bindView ,如果 icon 不一样还需要维护一个 icon 表,感觉太啰嗦了
    KNOX
        5
    KNOX  
       2015-12-19 21:28:58 +08:00   ❤️ 1
    @MiniGhost 如果 icon 不一样可以根据 ViewType 切换
    loshine1992
        6
    loshine1992  
       2015-12-19 23:49:43 +08:00
    RecyclerView + LinearLayoutManager 是比较合适的解决方案
    allan1st
        7
    allan1st  
       2015-12-20 02:04:25 +08:00
    @KNOX 个人愚见, viewtype 不是这样用的,是 layout 不同或者 viewmodel 不同时候采用的。单单 icon 不同只需要一个默认的 type 就可以了。
    KNOX
        8
    KNOX  
       2015-12-20 09:10:44 +08:00
    @allan1st 但他是 itemView 里的 button 变化,而不是 itemView 是变化
    allan1st
        9
    allan1st  
       2015-12-20 17:44:11 +08:00
    @KNOX 每个 item 都有一个独立的 type ,那就没有 recycle 的意义了。 还不如直接 LinearLayout 。
    hqs123
        10
    hqs123  
       2015-12-22 11:10:20 +08:00
    android 初学者也来学习下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:07 · PVG 13:07 · LAX 21:07 · JFK 00:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.