Je peux utiliser android:gravity="bottom|center_horizontal"
dans XML sur une textview pour obtenir les résultats souhaités, mais je dois le faire par programmation. Mon textview est à l’intérieur d’un tablerow
si cela compte dans un relativelayout
.
J’ai essayé:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); labelTV.setLayoutParams(layoutParams);
Mais si je comprends bien, cela l’appliquerait au tablerow
, pas au textview?
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);
Par ailleurs, parlez-vous de la gravité ou de la layout_gravity? Ce dernier ne fonctionnera pas dans un RelativeLayout .
Cela permettra de centrer le texte dans une vue texte:
TextView ta = (TextView) findViewById(R.layout.text_view); LayoutParams lp = new LayoutParams(); lp.gravity = Gravity.CENTER_HORIZONTAL; ta.setLayoutParams(lp);
Nous pouvons définir la gravité de la mise en page sur toute vue comme ci-dessous
myView = findViewById(R.id.myView); myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT); or myView.setGravity(Gravity.BOTTOM);
Ceci est équivalent au code xml ci-dessous
<... android:gravity="center_vertical|right" ... .../>
Vous devriez utiliser textView.setGravity(Gravity.CENTER_HORIZONTAL);
.
Rappelez-vous qu’en utilisant
LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
ne marchera pas Cela définira la gravité pour le widget et non pour son texte.
Utilisez ce code
TextView textView = new TextView(YourActivity.this); textView.setGravity(Gravity.CENTER | Gravity.TOP); textView.setText("some text");
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
Cela va définir la gravité de votre textview.