I'm making an app in which it might save me some time to have a single layout for several activities, with some of the views set to GONE depending on which activity is being used.
I know that having a large number of views in a layout can lead to poor performance. If I had an activity with a large number of views, but a large portion of those views were to to GONE, would this activity still perform poorly. That is, do views that are set to GONE contribute to worsening performance? If yes, do they demand less processing power than VISIBLE or INVISIBLE views?
Thanks!
First thing you should know about gone vs invisible:
Here is an interesting answer. I was wondering the same thing as you, and the answer is that
View.GONE
consumes more memory than simply callingremoveView(view)
on the view. However,GONE
views do consume less memory thanView.VISIBLE
since they do not need to be drawn.The memory amounts compare like this:
View.VISIBLE
>View.GONE
>removing the view from the container
What I do is use
View.GONE
on views that don't consume a lot of memory (like a TextView) and useparent.removeView(view)
on views that are a lot of memory (like a WebView);