Подтвердить что ты не робот

Получить поле зрения

Как получить значение маржи в представлении от Activity? Вид может быть любого типа.

После небольшого поиска я узнал, как получить дополнение к представлению, но ничего не могу найти в Margin. Может ли кто-нибудь помочь?

Я пробовал что-то вроде этого,

ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;

Это работает, но в приведенном выше коде я предположил, что представление является LinearLayout. Но мне нужно получить атрибут margin, даже если я не знаю тип представления.

4b9b3361

Ответ 1

попробуйте следующее:

View view = findViewById(...) //or however you need it
LayoutParams lp = (LayoutParams) view.getLayoutParams();
Поля

доступны через

lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;

изменить возможно, ViewGroup.MarginLayoutParams будет работать для вас. Это базовый класс для других LayoutParams.

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();

http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

Ответ 3

теперь используйте этот отредактированный код. это поможет вам

FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams();

lp.leftMargin  // for left margin
lp.rightMargin   // for right margin

Ответ 4

Как и другие, layout_margin # - это пространство между родительским # ребер и вашим представлением.

  • # заменяет "Left", "Right", "Top" или "Bottom"

Получение/настройка полей работало для меня с помощью:

ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams();
params.topMargin += 20;
mView.requestLayout();

Конечно, мой просмотр действительно был ViewGroup, а родитель также был ViewGroup. В большинстве случаев вы должны указать свои параметры макета родительскому классу View class LayoutParams (в этом случае ViewGroup и RelativeLayout)