German Scrollview Größe einstellen

pjo12345

Active Member
Licensed User
Longtime User
Hallo!

Ich habe ein Scrollview und füge diesem mehrere Buttons hinzu. Diese sollen einspaltig untereinander angeordnet werden. Das erfolgt mit diesem Code:

B4X:
width = 80%x
height = 50dip
       For y = 0 To Anzahl-1
            Dim b As Button
            b.Initialize("GetraenkButton")
            b.TextSize = 20
            sv.Panel.AddView(b,0,50 + y * (height + 10dip), width, height)
            Log("Top: " & (50 + y * (height + 10dip)))
            b.Text = Getraenk(y)
            b.Tag = y
            b.Background = colorButton
            b.TextColor = Colors.Black
            Buttons(y) = b
        Next

Wie kann ich jetzt die korrekte Höhe des Scrollview ermitteln? Irgendwie will mir das nicht gelingen.

Danke schon mal. Und falls einer eine bessere Idee hat für
B4X:
sv.Panel.AddView(b,0,50 + y * (height + 10dip), width, height)
wäre ich auch sehr dankbar.
 

klaus

Expert
Licensed User
Longtime User
Und falls einer eine bessere Idee hat für
sv.Panel.AddView(b,0,50 + y * (height + 10dip), width, height)
Ja es sollte so sein:
sv.Panel.AddView(b, 0, y * (height + 10dip), width, height)
Warum 50? Brauchst Du einen leeren Bereich oben?
Wenn Du einen Wert bräuchtest sollte es 50dip sein! Nie pure Pixel Werte verwenden sondern immer dip Werte.
Oder eventuell: sv.Panel.AddView(b, 0, 10dip + y * (height + 10dip), width, height)

Für die Höhe des internen Panels der ScrollView füge folgendes nach Next ein:
sv.Panel.Height = y * (height + 10dip)
Oder:
sv.Panel.Height = 10dip + y * (height + 10dip)
 
Top