Qual é a diferença entre o início / fim da margem do Android e a direita / esquerda?

130

Qual é a diferença entre a margem inicial e a direita do Android (ou a margem final e a esquerda)?

É uma pergunta trivial, mas não consigo aprender com a documentação qual é a diferença entre início / fim da visualização e esquerda / direita. Pode ser que eu simplesmente não entenda alguma coisa, mas não consigo progredir nisso.

Camaleão
fonte

Respostas:

185

Para o fluxo da esquerda para a direita, inicie = esquerda, final = direita.

Para o fluxo da direita para a esquerda, inicie = direita, final = esquerda.

Os conceitos "início" e "final" foram adicionados no nível 17 da API, como parte do suporte do Android 4.2 para layouts RTL .

CommonsWare
fonte
5
Você sabe qual deles tem precedência se forem diferentes? (curiosidade). como marginLeft=1 marginStart=2(em um cenário do Left2Right, por exemplo)
Martin Marconcini
@ MartínMarconcini: Espero que o início / fim tenha precedência, mas não sei ao certo. Você teria que tentar.
CommonsWare
@ Martin Pelo que eu entendi, esquerda / direita é ignorada quando o início / fim existe acima da API 17. No entanto, não vejo por que sua esquerda / direita difere do início / fim; Estou curioso.
Liggliluff
2
@ Erros do Diggliluff, erros de digitação, etc :) Após o início / fim da API 17 ter precedência e há um aviso LINT se você ainda usar os antigos. Eles são ignorados, eu tentei.
Martin Marconcini 6/17
@ Martin Obrigado por testá-lo. Os dois esquerdo / direito são ignorados se apenas um de início ou de final aparecer? (Não faria muito sentido lógico usar start / right quando esses serão os mesmos para scripts RTL).
Jungliluff
28

O Android suporta layouts RTL da API 17+, ou seja, Android 4.2 (Jelly Bean) .e quando criamos nosso layout para suportar RTL e LTR, não podemos usar layout_marginleft e layout_margin.Aqui, usamos layout_marginstart e layout_maginend.

foto

Avnish kumar
fonte