German Problem Textausrichtung (Button, EditText)

danebn11

Member
Licensed User
Hallo,

ich habe ein Problem mit der Textausrichtung bei im Code erzeugten Buttons und EditTexts.

Mein Code:
B4X:
Private Button_Test as Button

Button_Test.initialize("Button_Test")
Button_Test.Text = "Test"
Button_Test.Gravity = Gravity.CENTER_VERTICAL

Activity.AddView(Button_Test,20%x,30%y,25%x,10%y)

Bei CENTER_HORIZONTAL wird der Text richtig ausgerichtet, doch bei CENTER_VERTICAL oder auch nur CENTER, dann bleibt der Text immer entweder nach oben oder nach unten ausgerichtet.
Auch mit TOP oder BOTTOM kann ich nichts ändern.

Kann mir dabei jemand sagen was ich falsch mache?

Danke
 

An Schi

Well-Known Member
Licensed User
The Gravity value is an integer build of two parts, the vertical and horizontal alignments.

You should explicitly set both parts:
B4X:
Label1.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.LEFT)
 

klaus

Expert
Licensed User
Longtime User
Probiere diesen Code, der zeigt alle 9 Möglichkeiten:
B4X:
Sub Activity_Create(FirstTime As Boolean)
   
    Private col, row As Int
   
    For row = 0 To 2
        For col = 0 To 2
            Private btn As Button
            btn.Initialize("")
            btn.Text = "Test"
            Select row
                Case 0
                    Select col
                        Case 0
                            btn.Gravity = Bit.Or(Gravity.TOP, Gravity.LEFT)
                        Case 1
                            btn.Gravity = Bit.Or(Gravity.TOP, Gravity.CENTER_HORIZONTAL)
                        Case 2
                            btn.Gravity = Bit.Or(Gravity.TOP, Gravity.RIGHT)
                    End Select
                Case 1
                    Select col
                        Case 0
                            btn.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.LEFT)
                        Case 1
                            btn.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL)
                        Case 2
                            btn.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.RIGHT)
                    End Select
                Case 2
                    Select col
                        Case 0
                            btn.Gravity = Bit.Or(Gravity.BOTTOM, Gravity.LEFT)
                        Case 1
                            btn.Gravity = Bit.Or(Gravity.BOTTOM, Gravity.CENTER_HORIZONTAL)
                        Case 2
                            btn.Gravity = Bit.Or(Gravity.BOTTOM, Gravity.RIGHT)
                    End Select
            End Select
            Activity.AddView(btn, 10dip + col * 110dip, 20dip + row * 80dip, 100dip, 60dip)
        Next
    Next
   
End Sub

upload_2017-11-9_10-32-26.png
 

Knoppi

Active Member
Licensed User
Longtime User
Dein Code sollte funktionieren.
Ein Button hat immer einen festen Rand, eventuell ist der Button zu klein um den Gravity Effekt zu sehen.
Ich habe zum Testen den Button größer gemacht und funktioniert.
B4X:
Activity.AddView(Button_Test, 20%x,30%y,50%x,20%y)

@klaus dein Bild mit den Gravity möglichkeiten ist Super LIKE
 
Top