Android: Padrão Viewholder e diferentes tipos de linhas?
-
21-09-2019 - |
Pergunta
O padrão do viewholder melhora a taxa de quadros de rolagem da ListView, como visto no exemplo a seguir:https://developer.android.com/resources/samples/apidemos/src/com/example/android/apis/view/list14.html
É possível manter esse padrão ao usar diferentes tipos de visualizações para diferentes linhas?
Em outras palavras, é possível fazer algo como:
public View getView(int position, View view, ViewGroup parent) {
// calculate viewID here
if (view == null || *view is not null but was created from different XML than viewID* ) {
view = mInflater.inflate(viewId, null);
Solução
Sim, embora seja muito melhor substituir getViewTypeCount()
e getItemViewType()
em seu adaptador. Isso ensinará o pool de objetos do Android para entregar apenas uma linha do tipo adequado de volta getView()
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow