Создание элементов программно
подскажите как я могу создать элемент RelativeLayout c с вложенным в него TextView программно? Сам элемент я сделал, но вот не могу сделать атрибуты
android:layout_marginRight="5dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
LinearLayout linearLayout = (LinearLayout) indViewById(R.id.LL);
RelativeLayout relativeLayout = new RelativeLayout(getApplicationContext());
// Вот здесь не уверен, правильно ли сделал?
// android:background="#ССС34А"
relativeLayout.setBackground(Drawable.createFromPath("#ССС34А"));
relativeLayout.setPadding(1,1,1,1);
relativeLayout.setLayoutParams(
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,
)
);
linearLayout.addView(relativeLayout);
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Если у вас два данных тега используется:
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
То можно их заменить на один:
android:layout_centerInParent="true"
Смысл я думаю будет тот же что и с двумя тегами выше. Дальше вам нужно только применить этот тег и тег отступа программно:
View tv= findViewById(R.id.tv);
RelativeLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams)positiveButton.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
relativeParams.setMargins(0, 0, 5, 0); // left, top, right, bottom
tv.setLayoutParams(layoutParams);
Вот есть подобные вопросы 1 2. Так же у текстового поля можно установить расположение таким способом:
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);