Получить поле зрения
Как получить значение маржи в представлении от Activity? Вид может быть любого типа.
После небольшого поиска я узнал, как получить дополнение к представлению, но ничего не могу найти в Margin. Может ли кто-нибудь помочь?
Я пробовал что-то вроде этого,
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Это работает, но в приведенном выше коде я предположил, что представление является LinearLayout
. Но мне нужно получить атрибут margin
, даже если я не знаю тип представления.
Ответы
Ответ 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
Ответ 2
Try
ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams()
vlp.rightMargin
vlp.bottomMargin
vlp.leftMargin
vlp.topMargin
Это вернуло правильные маржи для моего представления по крайней мере.
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)