// Rule: InefficientWeight // // Description: Checks whether a layout_weight is declared inefficiently. // // Conditions: // - The node has a LinearLayout parent // - The node is the only sibling with a weight // - The node has a height/width != 0 def parent = node.'..' if (parent.is("LinearLayout") && node.'@android:layout_weight' && parent.'*'.findAll{ it.'@android:layout_weight' }.size() == 1) { def dimension = parent.'@android:orientation' == "vertical" ? "android:layout_height" : "android:layout_width" if (node."@${dimension}"[0] != '0') { analysis << "Use an ${dimension} of 0dip instead of ${node."@${dimension}"} " + "for better performance" } }