Sobes.tech
Middle

Como implementar uma interface de utilizador no Android sem usar XML?

sobes.tech IA

Resposta da IA

Podemos usar código Kotlin/Java para criar e adicionar Views e ViewGroup programaticamente.

Exemplo de criação de TextView:

// Criar TextView no código
val textView = TextView(context)
// Definir propriedades
textView.text = "Olá, mundo!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER

// Adicionar TextView ao ViewGroup (por exemplo, LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)

// Definir layout raiz
setContentView(linearLayout)

Para interfaces mais complexas, usa-se a "criação" de layout por programação, combinando diferentes ViewGroup e View.

Vantagens:

  • Criação dinâmica de UI com base em dados ou lógica.
  • Controle mais preciso sobre a criação de componentes.
  • Pode ser um pouco mais rápido, pois não há parsing de XML.

Desvantagens:

  • O código torna-se menos legível e mais volumoso para layouts complexos.
  • É difícil visualizar o layout sem executar a aplicação.
  • Ausência de ferramentas de pré-visualização convenientes, como em XML.

Em abordagens modernas, como Jetpack Compose (que usa Kotlin), a criação de UI é totalmente declarativa no código, substituindo XML.

Aqui um exemplo em Jetpack Compose:

// Em uma função @Composable, definimos a UI
@Composable
fun Greeting(name: String) {
    Text(text = "Olá, $name!")
}

// Usamos essa função na Activity
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting("Mundo")
        }
    }
}