2010-11-11 6 views
12

Esto no tiene sentido para mí, viene de CSS. En CSS, si especifica un margen y luego margen izquierdo, el margen izquierdo asumirá el valor más granular.¿Por qué los márgenes anulan marginLeft en Android (lo mismo con radio, etc.)?

En Android, es todo lo contrario. Lo mismo aplica para Android: radio, y estoy seguro de otros valores.

Mi pregunta es: ¿por qué? .. No tiene sentido. ¿Hay alguna razón para hacerlo de esta manera?

Editar: le pide al tratar de encontrar una solución a otro ADT Google/Android fallo http://code.google.com/p/android/issues/detail?id=7588

+3

No estoy seguro de que vayas a obtener una respuesta a esto a menos que el desarrollador de Google que implementó esta publicación aquí. ¿Qué estás esperando? – Falmarri

+0

smile @Falmarri = D – Tivie

+0

Bueno, Google proporciona oficialmente soporte para Android en SO, ¿por qué no? : P –

Respuesta

5

he tenido la misma frustración, pero si se piensa en ello, valor que se debe utilizar? Sé en tu publicación que dices que CSS usa el "valor más granular", pero al final todo se reduce a píxeles y el resultado es simplemente dos valores de píxeles que deben elegirse. El estándar CSS eligió hacerlo de una manera, Android eligió el otro, no creo que ninguno de los enfoques sea incorrecto, simplemente son diferentes.

+14

No estoy de acuerdo: con CSS, puede establecer el valor maestro y anularlo solo para 1 elemento. En Android, el valor maestro los borra a todos, por lo que no es tan poderoso, lo que hace que establezcas los 4 valores si solo quieres anular 1. –

+1

sí, estoy de acuerdo ... no es que uno sea "elegido" en CSS, es el que se declare último. Entonces declaras el relleno: 10px, relleno-izquierdo: 20px; y el relleno-izquierda anulará el relleno porque es el segundo. – Jeff

+8

Entonces, la lección aquí para mí es usar siempre layout_marginLeft/Right/Top/Bottom cuando defina un estilo. Esto le da a los clientes la capacidad de anular cuando sea necesario. –

Cuestiones relacionadas