Как установить левый и верхний поля для макета кадра программно? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть framelayout внутри относительного макета, и я хочу немного переместить макет кадра влево и вверх в целом. Я использовал setLeft() и setTop() метод. Это растягивает взгляд, но все же это нормально для моей цели. Моя проблема в том, что я хочу вернуть исходный макет без растяжки, когда я этого хочу. Но установка setRight() и установка того же параметра, похоже, не работают. Пожалуйста помоги.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Вы не можете установить Margin для вашего вида, как set padding. Для макета фрейма вам нужны параметры макета, а затем установите для поля значение макета.

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
layoutParams.setMargins(5, 5, 5, 5);
frameLayout.setLayoutParams(layoutParams);
0 голосов
/ 25 февраля 2020

Вы можете использовать setMargin для вашей структуры кадра

val par = framelayout?.layoutParams as FrameLayout.LayoutParams

par.rightMargin = 10
par.leftMargin = 30
...