Android définit la gravité pour un TextView par programmation

Je peux utiliser android:gravity="bottom|center_horizontal" en xml sur un textview pour obtenir les résultats souhaités, mais je dois le faire par programme. Mon textview est dans 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?

181
demandé sur ZhiXingZhe - WangYuQi 2010-09-23 09:45:31

6 réponses

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

Aussi, parlez-vous de gravité ou sur layout_gravity? Ce dernier ne fonctionnera pas dans un RelativeLayout.

440
répondu Maragues 2013-09-04 11:45:12

Cela centrera 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);
34
répondu radiofrequency 2016-10-25 13:04:37

Nous pouvons définir la gravité de la disposition sur n'importe quelle vue comme ci-dessous -

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

Ceci est égal au code xml ci-dessous

<...
 android:gravity="center_vertical|right"
 ...
 .../>
6
répondu Bajrang Hudda 2016-09-19 05:04:17

Vous devriez utiliser textView.setGravity(Gravity.CENTER_HORIZONTAL);.

Rappelez-vous que l'utilisation de

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

Ne fonctionnera pas. Cela définira la gravité pour le widget et non pour son texte.

1
répondu Irshu 2017-03-17 07:01:57

Utilisez ce code

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");
1
répondu Faxriddin Abdullayev 2017-07-07 09:35:23
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Cela définira la gravité de votre textview.

0
répondu Sibin Davis 2017-07-07 10:02:02