Please consider using RecyclerView instead of listview
This library provides setting different type list items into ListView. Dealing with different type of layouts and having them different type values was difficult, so with this library it is much more simple now.
Just create an object which is extended from "ListItem" and override getView method. And by using enumeration, which implements "RowType", make your array and give it to adapter.