Android 减少无用布局

讲一下android studio Inspect Code中的Android > Lint > Performance >UseLess parent layout。

场景

在布局对齐的时候,总是会写一个RelativeLayout去包裹好几个child View,再通过设置centerInParent去控制居中。这时候AS往往会给出warning,parent is possibly useless。

原因分析

添加了一个不必要的额外的视图(增加你的布局深度)。




    
        

ps:如果加一个background,warning就没有了。

解决方法

  1. 如果布局简单,不影响,直接删除父布局

  2. 使用space和Linenarlayout,并设置layout_weight来控制居中

  3. 充分使用TextView的drawable属性(drawableTop)

  4. 如果是root layout,那么可以在inflate的时候,注意参数的传值

     public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)
    

当root不为null,attachToRoot为true时,表示将resource指定的布局添加到root中,添加的过程中resource所指定的的布局的根节点的各个属性都是有效的

如果我想让linearlayout的根节点有效,又不想让其处于某一个容器中,那我就可以设置root不为null,而attachToRoot为false

总结

以上所有内容对过度绘制完全没有作用

备注

你可能感兴趣的:(Android 减少无用布局)