ExpandableLayout provides an easy way to create a view called header with an expandable view. Both view are external layout to allow a maximum of customization. You can find a sample that how to use an ExpandableLayout to your layout.
ExpandableLayout

Related Posts
AnimatedBottomBar
A customizable and easy to use bottom bar view with sleek animations