Всё верно, это наилучший вариант. Не забывайте также про getItemViewType() — сможете заготовить несколько готовых XML с нужными layout-ами и в зависимости от ситуации использовать нужный XML. А добавлять/удалять вьюхи на лету из списка — последнее дело, никогда так не делайте.