Does Android support layout inheritance (similar to Django templates)? Does Android support layout inheritance (similar to Django templates)? android android

Does Android support layout inheritance (similar to Django templates)?


Let's say you want to have 3 activities that all have the same header, but have different content. You'll still need to have 3 XML layout files for each activity. The only difference between each of the layout's will be that they define a different layout in the tag.

If you want to have three activities that all have the same header, you will have one layout file per activity. That file will have the widgets unique to that activity, and an <include> element for the common header.

That way, if I wanted to add that footer, I would just change the parent and the children would continue to override just the content.

That is not supported by Android at this time. As janoliver indicates, you could roll your own solution for this.


I've solved this by adding ViewStub entries into the layout xml of the parent, and - depending on the type of subclass - inflating the correct stub.

http://developer.android.com/reference/android/view/ViewStub.html

ViewStub is sort of lazy loading a view, so if you never call inflate() on it or never make it visible it won't be added to the layout hierarchy.