Obtener el margen de una vista
¿Cómo puedo obtener el valor de margen de una vista de una actividad? La vista puede ser de cualquier tipo.
Después de un poco de búsqueda descubrí maneras de conseguir relleno de una vista, pero no pude encontrar nada en Margin. ¿Alguien puede ayudar?
- Aclaración sobre la propiedad de clipToPadding de Android
- ¿Hay una manera de obtener el diseño de la actividad actual y las vistas a través de adb?
- Cambiar el ancho y la altura de la vista personalizada en Android
- Cómo alinear el botón por centro y hacer offset
- Adición de TextViews al widget de pantalla de inicio mediante programación
He intentado 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 conseguir el atributo del margin
incluso cuando no sé el tipo de la visión.
- Cambio de vista de la aplicación de Android en lugar de emulador
- Mantener la vista de lista y el buscador de vistas sincronizados
- El teclado suave levanta tabhost hacia arriba
- ListView muestra imágenes incorrectas y duplicadas
- ¿Dónde se desplaza Android View.scrollTo (x, y)?
- ¿Es posible tomar una captura de pantalla de una vista, sin mostrar la vista?
- Cómo hacer que el segundo fragmento se solape en el primer fragmento mientras que la transición del fragmento
- Herramienta de relleno de dibujo Android
prueba esto:
View view = findViewById(...) //or however you need it LayoutParams lp = (LayoutParams) view.getLayoutParams();
Los márgenes son accesibles
lp.leftMargin; lp.rightMargin; lp.topMargin; lp.bottomMargin;
Editar: quizás ViewGroup.MarginLayoutParams
funcionará para usted. Es una clase base para otros LayoutParams
.
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
Tratar
ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams() vlp.rightMargin vlp.bottomMargin vlp.leftMargin vlp.topMargin
Esto devolvió el margains correcto para mi atleast de vista.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
Ahora utilice este código editado. Esto te ayudara
FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams(); lp.leftMargin // for left margin lp.rightMargin // for right margin
Como otros sugirieron, layout_margin # es el espacio entre el borde # del padre y su vista.
- # Reemplaza "Izquierda", "Derecha", "Superior" o "Abajo"
Conseguir / establecer los márgenes funcionó para mí con:
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams(); params.topMargin += 20; mView.requestLayout();
Por supuesto, mi View era de hecho un ViewGroup y el padre era un ViewGroup también. En la mayoría de los casos, debe emitir sus parámetros de diseño a la clase View de los padres LayoutParams (en este caso, ViewGroup y RelativeLayout)
- Imagen de carga animada en picasso
- ¿Por qué es importante establecer la carga útil del desarrollador con la facturación en la aplicación?