请教一个关于安卓多设备适配问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
kldd529

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

  •  
  •   kldd529 Nov 14, 2021 via Android 13418 views
    This topic created in 1627 days ago, the information mentioned may be changed or developed.
    现有几种设备分辨率的分别 1920*132 1920*480 1920*1080 等各种条形屏矩形屏。现在布局是几张卡片,然后要根据分辨率来自动排列,比如条形屏上就排成一行,矩形屏可以排成 2 行 5 列啥的(居中),然后还有竖屏(可能就排成 5 行 2 列),兼顾对齐美观。

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

    目前我想到的自定义个 viewgroup (经理说要搞这么复杂吗);弄个 recyclerview (每个卡片数据界面都不一样,多布局又是一堆代码)
    9 replies    2021-11-22 16:06:31 +08:00
    mx8Y3o5w3M70LC4y
        1
    mx8Y3o5w3M70LC4y  
       Nov 14, 2021 via iPhone
    试试 flexboxlayout ?
    james2013
        2
    james2013  
       Nov 14, 2021
    获取屏幕宽高信息,转化为几种枚举值,再根据这几种枚举值,来设置 RecyclerView 的列数
    CharmingCheung
        3
    CharmingCheung  
       Nov 15, 2021
    卡片宽度如果是一个固定值(同一设备下),可以用 GridLayoutManager ,(屏幕宽度 - 控件左右边距) / (卡片宽度 + 卡片之间 margin),计算得出 spanCount
    反之可以参考一下一些开源的标签控件(关键词:LabelView 、TagView 之类)的实现方式,也是可以实现的
    kldd529
        4
    kldd529  
    OP
       Nov 15, 2021
    @CharmingCheung 有的布局最后一张卡片长度是其他卡片的两倍
    CharmingCheung
        5
    CharmingCheung  
       Nov 15, 2021
    @kldd529 那就重写 setSpanSizeLookup ,把要两倍长度的 position 改成 return 2
    kldd529
        6
    kldd529  
    OP
       Nov 15, 2021
    @CharmingCheung 谢谢回答
    ChitandaEru520
        7
    ChitandaEru520  
       Nov 17, 2021
    如果卡片数量是固定的,可以试试 ConstraintLayout 里面的 Flow 流式布局
    guoziq09
        8
    guoziq09  
       Nov 17, 2021
    参考一下 FloatLayout
    bugmaker233
        9
    bugmaker233  
       Nov 22, 2021
    recyclerView 完全可以啊
    About     Help     Advertise     Blog     API     FAQ     Solana     3247 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 72ms UTC 13:22 PVG 21:22 LAX 06:22 JFK 09:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86