webentwicklung-frage-antwort-db.com.de

Android legt die Schwerkraft für eine TextView programmgesteuert fest

Ich kann nutzen Android:gravity="bottom|center_horizontal" in xml in einer Textansicht, um die gewünschten Ergebnisse zu erhalten, dies muss jedoch programmgesteuert erfolgen. Meine Textansicht befindet sich in einem tablerow, wenn dies in einem relativelayout von Bedeutung ist.

Ich habe versucht:

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);

Aber wenn ich das richtig verstehe, würde das auf das tablerow zutreffen, nicht auf die Textansicht?

200
Nate
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Kotlin-Version (Danke an Thommy)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

Sprechen Sie auch über Schwerkraft oder über layout_gravity? Letzteres funktioniert in einem RelativeLayout nicht.

485
Maragues

Dadurch wird der Text in einer Textansicht zentriert:

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
39
radiofrequency

Wir können die Schwerkraft des Layouts in jeder Ansicht wie folgt einstellen:

myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
 or
myView.setGravity(Gravity.BOTTOM);

Dies entspricht dem folgenden XML-Code

<...
 Android:gravity="center_vertical|right"
 ...
 .../>
6
Bajrang Hudda
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Dadurch wird die Schwerkraft Ihrer Textansicht festgelegt.

2
DAS

Sie sollten textView.setGravity(Gravity.CENTER_HORIZONTAL); verwenden.

Denken Sie daran, dass mit

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;

wird nicht funktionieren. Dadurch wird die Schwerkraft für das Widget und nicht für den Text festgelegt.

2
Irshu

Verwenden Sie diesen Code

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");