Установка атрибутов Textview программно

Я создал 5 TextView программно, теперь я хочу установить несколько их параметров/атрибутов, таких как Gravity, Layout_Gravity и т. д.

Я знаю, что мы можем установить его в макете XML во время разработки:

android:gravity="center|center_horizontal|center_vertical"
android:layout_gravity="center|center_horizontal|center_vertical"

Но как мы можем установить типы атрибутов Gravity/Layout_Gravity программно?


person Paresh Mayani    schedule 29.11.2010    source источник


Ответы (2)


Вы можете программно установить гравитацию TextView, используя setGravity(int) )

Вероятно, вы можете установить layout_gravity следующим образом (я еще не проверял это):

TextView может сообщить своему родителю о настройках макета, используя

setLayoutParams(ViewGroup.LayoutParams params)
LayoutParams params=new LayoutParams(this, attrSet);
tv.setLayoutParams(params);
person Suresh    schedule 29.11.2010
comment
В дополнение к тому, что сказал Suresh, я не вижу прямого метода программной установки layout_gravity. Вы могли видеть, что android:layout_gravity не имеет каких-либо прямых методов, связанных с Java, в документации, тогда как android:gravity имеет один developer.android.com/reference/android/widget/ - person DeRagan; 29.11.2010
comment
Гравитация макета предназначена для ViewGroup, но TextView не является ViewGroup, правильно ли установить для него layout_gravity? - person Suresh; 29.11.2010
comment
Текстовое представление может находиться внутри группы просмотра. У нас нет макета, размещенного здесь... Во всяком случае, framelayout может принимать гравитацию в параметрах макета... Вы можете проверить, поможет ли это вам. разработчик. android.com/reference/android/widget/ stackoverflow.com/questions/2945315/ - person DeRagan; 29.11.2010
comment
Вероятно, вы можете использовать setLayoutParams (параметры ViewGroup.LayoutParams), чтобы установить layout_gravity. - person Suresh; 29.11.2010
comment
Ну, это зависит от используемого макета. LinearLayout и RelativeLayout не могут принимать гравитацию для передачи в setLayoutParams, тогда как FrameLayout может в соответствии с документами developer.android.com/reference/android/widget/ developer.android.com/reference/android/widget/ - person DeRagan; 29.11.2010

Это все есть в документах. Посмотрите документацию для View, например, в разделе "Атрибуты XML". . Вы увидите все атрибуты XML и соответствующий метод, который вам нужно будет вызвать в коде, чтобы получить тот же эффект.

person EboMike    schedule 29.11.2010