Android устанавливает гравитацию для TextView программно - PullRequest
197 голосов
/ 23 сентября 2010

Я могу использовать android:gravity="bottom|center_horizontal" в xml для просмотра текста, чтобы получить желаемые результаты, но мне нужно сделать это программно. Мое текстовое представление находится внутри tablerow, если это имеет значение в relativelayout.

Я пробовал:

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

Но если я правильно понимаю, это применимо к tablerow, а не к текстовому обзору?

Ответы [ 6 ]

480 голосов
/ 23 сентября 2010
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

версия Kotlin (спасибо Томми)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

Также, вы говорите о гравитации или о layout_gravity?Последний не будет работать в RelativeLayout .

39 голосов
/ 23 сентября 2010

Это будет центрировать текст в текстовом представлении:

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
6 голосов
/ 19 сентября 2016

Мы можем установить гравитацию макета на любом виде, как показано ниже -

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

Это эквивалентно приведенному ниже XML-коду

<...
 android:gravity="center_vertical|right"
 ...
 .../>
2 голосов
/ 17 марта 2017

Вы должны использовать textView.setGravity(Gravity.CENTER_HORIZONTAL);.

Помните, что использование

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

не будет работать.Это установит гравитацию для виджета, а не для его текста.

1 голос
/ 07 июля 2017
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

Это установит серьезность вашего textview.

1 голос
/ 07 июля 2017

Используйте этот код

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