Как я могу получить значение маржи представления из действия? Вид может быть любого типа.
После небольшого поиска я нашел способы получить заполнение представления, но ничего не нашел на Margin. Кто-нибудь может помочь?
Я пробовал что-то вроде этого,
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Это работает, но в приведенном выше коде я предположил, что представление является файлом LinearLayout
. Но мне нужно получить margin
атрибут, даже если я не знаю тип представления.
android
android-layout
android-view
Арнаб Чакраборти
источник
источник
LayoutParams
. Есть классы вродеFrameLayout.LayoutParams
,RelativeLayout.LayoutParams
но ничего похожегоLayoutParams
само по себе. А так как я не знаю тип представления, я не могу использовать ни один из предыдущих классов.ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
тогда?Пытаться
Это, по крайней мере, вернуло правильные поля для моей точки зрения.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
источник
теперь используйте этот отредактированный код. это поможет тебе
источник
LinearLayout
сhorizontal
ориентацией. Если это второй вид в макете,view.getLeft()
метод предоставит мне координату его левого, но левого края вида из соседнего вида.LinearLayout
?Как предлагали другие, layout_margin # - это пространство между родительским краем # и вашим видом.
Получение / установка полей у меня работала с:
Конечно, мой View действительно был ViewGroup, и родительский элемент тоже был ViewGroup. В большинстве случаев вы должны передать свои параметры макета в родительский класс View LayoutParams (в данном случае это ViewGroup и RelativeLayout)
источник