¿Cómo puedo obtener el valor de margen de una vista de una actividad? La vista puede ser de cualquier tipo.
Después de buscar un poco, encontré formas de obtener el relleno de una vista, pero no pude encontrar nada en Margin. ¿Alguien puede ayudar?
Intenté algo como esto
ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;
Esto funciona, pero en el código anterior he asumido que la vista es LinearLayout
. Pero necesito obtener el margin
atributo incluso cuando no conozco el tipo de vista.
android
android-layout
android-view
Arnab Chakraborty
fuente
fuente
LayoutParams
. Hay clases comoFrameLayout.LayoutParams
,RelativeLayout.LayoutParams
pero nada comoLayoutParams
en sí mismo. Y como no conozco el tipo de vista, no puedo usar ninguna de las clases anteriores.ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
entonces?Tratar
Esto devolvió los márgenes correctos para mi punto de vista al menos.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
fuente
ahora use este código editado. Esto te ayudara
fuente
LinearLayout
conhorizontal
orientación. Si es la segunda vista en el diseño, elview.getLeft()
método me daría la coordenada de su izquierda pero el margen izquierdo de la vista de su vista adyacente.LinearLayout
?Como sugirieron otros, layout_margin # es el espacio entre el borde # del padre y su vista.
Obtener / establecer márgenes me funcionó con:
Por supuesto, mi Vista era de hecho un ViewGroup y el padre también era un ViewGroup. En la mayoría de los casos, debe convertir sus parámetros de diseño a la clase de vista LayoutParams del padre (en este caso es ViewGroup y RelativeLayout)
fuente