Centralizar visualização para outra em RelativeLayout
-
21-12-2019 - |
Pergunta
Eu tenho duas visões que quero centralizar verticalmente em um RelativeLayout.
Existe uma maneira de fazer isso sem usar gravitação/layout_gravity ?
Meu problema por trás desta pergunta:
Preciso fazer um layout com vários quadrados e embaixo de cada um um TextView.O principal problema é que os TextViews devem se sobrepor.Apenas um TextView ficará visível por vez.Cada TextView tem um comprimento diferente.
Comecei com um RelativeLayout, mas encontrei o problema anterior.E não consigo agrupar as visualizações 2 por 2 porque preciso definir um layout_toRightOf do quadrado anterior.
Layout atual:
No momento, defini um número mágico em layout_marginLeft para cada quadrado (até a borda da visualização pai), mas ele não está nada limpo.
Obrigado
Solução 2
Finaly, eu mantive o layout_marginleft, mas coloquei os valores em meus res / values / dimens.xml, é mais limpo e eu posso ter uma dimensão dimens.xml por tela. Um truque é definir a largura dos textviews deliberadamente grandes, então não dependerá do comprimento das cordas.
Outras dicas
Usar android:layout_centerInParent="true"
centralizar algo em um RelativeLayout
Você pode usar android:layout_below="@id/your_first_view"
para colocar o seu segundo View
abaixo do primeiro!
Se você quiser fazer coisas mais complexas, você pode separar suas diferentes visualizações e armazená-las em novas LinearLayout
que você define como horizontal ou vertical dependendo de suas necessidades.
Outro truque pode ser criar Views vazias com altura ou largura pequenas e que podem ajudá-lo a posicionar as coisas ao redor delas!
Isto combinado ao toRightOf
toLeftOf
as coisas farão o que você quiser