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")
}
}
}