Meu ListView tem dois tipos de visualizações. Como gerenciar?

Meu aplicativo de gerenciamento de eventos possui dois tipos de visualizações na exibição em lista: uma pequena exibição de texto simples para eventos não tão importantes e uma exibição complexa criada com umFrameLayout.

noonCreateView() do adaptador, retorno essas visualizações, dependendo da natureza do evento.

if(convertView == null){
  if(important)
   // inflate the complex view
  else
   // inflate the simpler view
}  

Tudo isso é bom quandoconvertView é nulo. Devido à reciclagem de visualizações no Android, pode acontecer que oconvertView retornado para mim é reciclado a partir da visualização mais simples e agora tenho que exibir a visualização maior. Uma solução idiota é inflar novas visualizações o tempo todo. No entanto, isso prejudicará o desempenho.

Outra maneira é ter invisívelTextViews em ambos (visibility=gone) com valores predefinidos e, dependendo do valor neles, posso aumentar as visualizações. Para mim, isso parece mais um hack do que uma solução real.

Qual é o caminho certo para lidar com essa situação?

questionAnswers(1)

yourAnswerToTheQuestion