1
resposta

Qual a diferença entre View e ViewGroup e quando utilizar

Durante o curso, fiquei meio perdido quanto a utilização de View e ViewGroup.

Vi que em algumas classes, utilizamos o View

class ResumoView(private val context: Context,
                 private val view: View,
                 transacoes: List<Transacao>) {
}

E em outras, foi utilizado o ViewGroup

class AdicionaTransacaoDialog(private val context: Context,
                              private val viewGroup: ViewGroup) {
}

Porém, percebi que na classe ResumoView foi utilizado a propriedade view: View para acessar diretamente os componentes dentro do XML. Já na classe AdicionaTransacaoDialog, foi utilizado a propriedade viewGroup: ViewGroup para ser chamado dentro do método criarLayout()

private fun criarLayout(): View {
        return LayoutInflater
            .from(context)
            .inflate(R.layout.form_transacao, viewGroup, false)
    }

Resumindo, gostaria de entender quando chamar cada um...

1 resposta

bom, eu sempre usei esse conceito e ele funciona pra mim. É o seguinte, tudo no android é uma view, textos, botões, imagens, checkbox, etc. E também são views layouts, fragments, cardviews, etc. Só que essas views comportam outras views, então é uma view que agrupa outras views portanto são viewsGroups. Experimenta instanciar uma LinearLayout e depois clica nela com Ctrl segurado, você vai ver que vai abrir sua interface herdando uma viewGroup, depois faça isso com uma TextView e você verá a diferença. No java é assim tem que ver se no kotlin também é.