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

请教一个关于安卓多设备适配问题

  •  
  •   kldd529 · 19 天前 via Android · 1809 次点击
    现有几种设备分辨率的分别 1920*132 1920*480 1920*1080 等各种条形屏矩形屏。现在布局是几张卡片,然后要根据分辨率来自动排列,比如条形屏上就排成一行,矩形屏可以排成 2 行 5 列啥的(居中),然后还有竖屏(可能就排成 5 行 2 列),兼顾对齐美观。

    现在产品要求写一个布局,然后会自动在不同设备上展示合理的排列,大佬们有什么方便的方案(产品要求要简单点实现,我直接内心 c 语言)

    目前我想到的自定义个 viewgroup (经理说要搞这么复杂吗);弄个 recyclerview (每个卡片数据界面都不一样,多布局又是一堆代码)
    9 条回复    2021-11-22 16:06:31 +08:00
    lvdb
        1
    lvdb  
       19 天前 via iPhone
    试试 flexboxlayout ?
    james2013
        2
    james2013  
       19 天前
    获取屏幕宽高信息,转化为几种枚举值,再根据这几种枚举值,来设置 RecyclerView 的列数
    CharmingCheung
        3
    CharmingCheung  
       17 天前
    卡片宽度如果是一个固定值(同一设备下),可以用 GridLayoutManager ,(屏幕宽度 - 控件左右边距) / (卡片宽度 + 卡片之间 margin),计算得出 spanCount
    反之可以参考一下一些开源的标签控件(关键词:LabelView 、TagView 之类)的实现方式,也是可以实现的
    kldd529
        4
    kldd529  
    OP
       17 天前
    @CharmingCheung 有的布局最后一张卡片长度是其他卡片的两倍
    CharmingCheung
        5
    CharmingCheung  
       17 天前
    @kldd529 那就重写 setSpanSizeLookup ,把要两倍长度的 position 改成 return 2
    kldd529
        6
    kldd529  
    OP
       17 天前
    @CharmingCheung 谢谢回答
    ChitandaEru520
        7
    ChitandaEru520  
       15 天前
    如果卡片数量是固定的,可以试试 ConstraintLayout 里面的 Flow 流式布局
    guoziq09
        8
    guoziq09  
       15 天前
    参考一下 FloatLayout
    bugmaker233
        9
    bugmaker233  
       10 天前
    recyclerView 完全可以啊
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3968 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 02:16 · PVG 10:16 · LAX 18:16 · JFK 21:16
    ♥ Do have faith in what you're doing.