讨论一下 Constraintlayout 如何优雅的实现复杂一点的布局 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nuttertoo1s
V2EX    Android

讨论一下 Constraintlayout 如何优雅的实现复杂一点的布局

  •  
  •   Nuttertoo1s 2020-12-19 15:23:09 +08:00 13242 次点击
    这是一个创建于 1840 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如这种

    我的想法是先拉一个 Contraintlayout1,然后用百分比辅助线分好区域,然后再往每个区域里填一个 Constraintlayout2,之后就可以在 Constraintlayout2 填入 ImageView 和 TextView,不知道还有没有什么优雅的方式可以让 2 个辅助线之间的内容变成一个整体,就是可以设置点击事件的那种
    这是大概的结构图

    引到主布局之后的样子
    12 条回复    2020-12-22 17:15:40 +08:00
    ohhhh
        1
    ohhhh  
       2020-12-19 15:47:18 +08:00
    把图片和文字写成一个自定义 view 就好了
    Nuttertoo1s
        2
    Nuttertoo1s  
    OP
       2020-12-19 15:52:35 +08:00
    @ohhhh 上一版就是自定义 view 来解决的,这次换成 Constraintlayout 布局想看看还有没有其他好的方法
    ohhhh
        3
    ohhhh  
       2020-12-19 15:55:54 +08:00
    蹲一个 说不定有
    ohhhh
        4
    ohhhh  
       2020-12-19 16:03:05 +08:00
    @Nuttertoo1s 看了一下 应该还是需要自定义 view 去解决这个事情,Constraintlayout 主要用来解决布局的嵌套
    mxalbert1996
        5
    mxalbert1996  
       2020-12-19 19:37:22 +08:00 via Android   1
    你这个用 LinearLayout 很容易实现啊,而且我也不是很懂为什么要自定义 View 。我的建议是除非用其他 Layout 实现不了或者嵌套层级太多,否则不要用 ConstraintLayout,因为 ConstraintLayout 虽然功能强大,但性能也比其他的差得多。
    Nuttertoo1s
        6
    Nuttertoo1s  
    OP
       2020-12-19 19:43:55 +08:00
    @mxalbert1996 为了强迫自己学习新技术
    Nuttertoo1s
        7
    Nuttertoo1s  
    OP
       2020-12-19 19:49:05 +08:00
    @mxalbert1996 我感觉以后图形化界面绘制布局应该是主流,现在 4.1 版本的已经很方便了
    tpkxywxd
        8
    tpkxywxd  
       2020-12-20 08:38:00 +08:00
    john6lq
        9
    john6lq  
       2020-12-20 12:48:02 +08:00 via iPhone
    你是不是不知道有个东西叫 drawableStart
    lonnyzhang
        10
    lonnyzhang  
       2020-12-21 09:16:28 +08:00
    用 Group 关联两个 view,运行时拿到 referenceIds 遍历设置 click 事件

    https://stackoverflow.com/questions/46743944/use-group-in-constraintlayout-to-listen-for-click-events-on-multiple-views
    chenjiajia9411
        11
    chenjiajia9411  
       2020-12-21 09:42:37 +08:00
    怎么还有人觉得约束布局性能差的,嵌套和过度绘制才是界面绘制缓慢的根本原因,一举解决这两个问题的约束布局为什么会比千层饼线性布局或者相对布局慢我倒也是不懂。
    如果说的是在 RecyclerView 里的情况的话(估计又是[那篇文章]( https://juejin.cn/post/6844903685655363598)误导的),我就不懂了两年前的玩意儿怎么现在还能拿出来说的(里面甚至有一个例子是 ListView 在 API 18 上面跑的,我也是醉了),ConstraintLayout 稳定版都 2.0.4 了,如果你还在用 support 库那真是打扰了。
    楼主的问题的话,楼上有人说的 drawableStart (在低版本上还要设置 drawableLeft )就可以解决了。
    wuliaoshixia
        12
    wuliaoshixia  
       2020-12-22 17:15:40 +08:00
    @lonnyzhang 正解
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2414 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:47 PVG 19:47 LAX 03:47 JFK 06:47
    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