| // 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" |
| } |
| } |