Middle
Чӣ гуна бояд интерфейси корбарро дар Android бе истифодаи XML амалӣ кард?
sobes.tech AI
Ҷавоб аз AI
Моҷаро истифода бурда, коди Kotlin/Java барои эҷод ва илова кардани View ва ViewGroup ба таври барномавӣ истифода бурда мешавад.
Масалан, эҷоди TextView:
// Эҷоди TextView дар код
val textView = TextView(context)
// Муайян кардани хосиятҳо
textView.text = "Салом, ҷаҳон!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER
// Илова кардани TextView ба ViewGroup (масалан, LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)
// Муайян кардани layout асосӣ
setContentView(linearLayout)
Барои интерфейсҳои мураккабтар, истифода бурда мешавад, ки layout-ро "барномавӣ" эҷод мекунанд, бо ҳамҷоя кардани ViewGroup ва View-ҳои гуногун.
Арзишҳо:
- Эҷоди UI-ро ба таври динамикӣ бар асоси маълумот ё логика.
- Назорати дақиқтар дар сохтани компонентҳо.
- Теоретикӣ метавонад каме тезтар бошад, зеро XML-ро парсинг намекунад.
Норасоиҳо:
- Код камтар хондашаванда ва барои layout-ҳои мураккаб бештар калон мешавад.
- Таҳлил кардани layout пеш аз оғози барнома душвор аст.
- Воситаҳои пешнамоиш, монанди XML, вуҷуд надоранд.
Дар равишҳои муосир, масалан, Jetpack Compose (ки бо Kotlin кор мекунад), сохтани UI комилан декларативӣ дар код аст, ки XML-ро иваз мекунад.
Масалан дар Jetpack Compose:
// Дар функсияи @Composable UI-ро муайян мекунем
@Composable
fun Greeting(name: String) {
Text(text = "Салом, $name!")
}
// Ин функсияро дар Activity истифода мебарем
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Дунё")
}
}
}