Android GUI ohne XML

  • Antworten:4
  • Bentwortet
koje71
  • Forum-Beiträge: 56

28.10.2022, 23:16:45 via Website

Hallo,

ein kleiner Auszug wie ich momentan meine UI baue (auf XML hatte ich keine Lust mehr):

private fun createContentHeader(target: LinearLayoutBuilder) {
    target.addLinearLayout {
        setOrientationHorizontal()
        setPaddingsDP(5, 0)
        addTextView {
            setTextColorID(F.color.DarkBlue)
            setFontId(R.font.nunito_bold)
            setTextSizeSP(20f)
            addReceiver(currentBoard) {
                setText("Board ${it + 1}")
            }
        }
        addFiller()
        addLinearLayout {
            setOrientationHorizontal()
            addImageView {
                setDrawableId(R.drawable.replay)
                setSizeDP(60)
                setMarginsDP(0, 5, 0, 0)
                setOnClickListener {
                    playground.checkLoad = currentBoard.get()
                }
            }
            addImageView {
                setDrawableId(R.drawable.forward)
                setSizeDP(60)
                setMarginsDP(0, 5, 0, 0)
                setOnClickListener {
                    if (playground.isLastBoard()) {
                        levelSelectionVisible.set(true)
                    } else {
                        playground.checkGoForward = true
                    }
                }
            }
            addReceiver(navigationIconsVisible) {
                when (it) {
                    true -> setVisibleTrue()
                    else -> setVisibleGone()
                }
            }
        }
    }
}
Kommentieren
Beste Antwort
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

30.10.2022, 11:16:57 via Website

Und was ist jetzt deine Frage?
Kann man so tun, allerdings hat es schon einen Grund, warum Android auf die XML Layouts setzt.
So müsstest du z.b. für unterschiedliche Displaygrößen etra Code schreiben, beim anderen brauchst du nur das entsprechende XML Layout.

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
koje71
Kommentieren
koje71
  • Forum-Beiträge: 56

30.10.2022, 22:44:51 via Website

eine Frage habe ich nicht, ich wollte eigentlich nur mal eine zweite Meinung hören. Der andere Nachteil ist, dass man nicht mit den UI Builder Tools arbeiten kann, aber ich finde, der Code lässt sich (besonders bei komplizierten Layouts) besser strukturieren und ich mach erst mal so weiter.

Trotzdem Danke und viele Grüße

Hilfreich?
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

31.10.2022, 11:45:08 via Website

Ja wie gesagt beides durchaus möglich.
Ich habe auch schon dynamische Layouts oder Layout Frames (z.b. Material) per Code gebaut, der mir um jedes meines Layouts die Material Drawer etc. legt, damit ich das nicht machen muss.
Aber ans XML gewöhnt man sich, wenn man genug mit gearbeitet hat. Muss man aber halt auch die Geduld haben sich damit einige Monate rum zu schlagen

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
koje71
Kommentieren
Rafael K.
  • Forum-Beiträge: 2.359

13.11.2022, 21:19:41 via Website

Es gibt in Android inzwischen auch einen neuen Weg UI zu bauen, der zukünftig auch der von Google empfohlene Weg ist: Jetpack Compose
Sieht im Code ganz ähnlich aus und kommt ohne XML aus. Man muss nur ein wenig umdenken, weil die UI damit nicht mehr stateful ist, sondern eher funktional programmiert wird.

https://developer.android.com/jetpack/compose

— geändert am 13.11.2022, 21:21:36

Hilfreich?
koje71
Kommentieren