How many ViewGroup (LinearLayout, Relative, Grid,

2019-08-01 08:36发布

I tried to find an answer for this specific question but I couldn't. I watched a video https://www.youtube.com/watch?v=NYtB6mlu7vA and I got the impression that over using Layouts generally is expensive. Apps like twitter, use complex designs that consists of many nested group views

Dumped View Hierarchy

I realize that these are rows inside a listview, and they are recycled, but my question is, is this considered bad practice generally?

The video they discussed the fact that linearlayout performs a calculation to draw elements inside it, and it gets worse when you nest multiple linearlayouts.

1条回答
做自己的国王
2楼-- · 2019-08-01 09:05

According to Lint Checks:

Layout has too many views

The maximum view count defaults to 80 but can be configured with the environment variable ANDROID_LINT_MAX_VIEW_COUNT.

Layout hierarchy is too deep

Layouts with too much nesting is bad for performance. Consider using a flatter layout (such as RelativeLayout or GridLayout).The default maximum depth is 10 but can be configured with the environment variable ANDROID_LINT_MAX_DEPTH.

According to my experience:

If your app supports api 9+ I recommend having less than 12 nested views. Usually these devices have limitations on memory. You can get OutOfMemoryException or StackOverflowException. StackOverflow happens when "Composite" pattern recursively walks through hierarchy.

查看更多
登录 后发表回答