Estou usando um layout linear para exibir uma tela inicial bastante clara. Ele possui 1 botão que deve centralizar na tela horizontal e verticalmente. No entanto, não importa o que eu tente fazer, o botão alinhará o centro. Eu incluí o XML abaixo, alguém pode me apontar na direção certa?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
layout_width
como "wrap_content". Posteriormente, eleslayout_gravity
fizeram o que deveriam fazer!Respostas:
Se você deseja centralizar um item no meio da tela, não use a,
LinearLayout
pois eles destinam-se à exibição de vários itens seguidos.Use um em
RelativeLayout
vez disso.Então substitua:
para a
RelativeLayout
opção relevante :Portanto, seu arquivo de layout ficará assim:
fonte
Centralize usando um LinearLayout:
fonte
Você já tentou definir
android:gravity="center_vertical|center_horizontal"
dentro do layout e definirandroid:layout_weight="1"
na imagem?fonte
android:weight="1"
no botão para centralizá-la embora.)Um método comumente usado que funciona com layout linear é definir uma propriedade no botão de imagem
Você pode escolher se deseja alinhar à esquerda, alinhar ao centro ou alinhar à direita cada objeto no layout linear. Observe que a linha acima é exatamente a mesma que
fonte
Adicione isso
Em LinearLayout.
fonte
android:gravity="center"
Se você usar,
LinearLayout
pode adicionar o centro de gravidade:fonte
fácil com isso
fonte
Você pode usar o
RelativeLayout
.fonte
O código acima irá funcionar.
fonte
amostra completa e funcional da minha máquina ...
fonte
De acordo com a documentação do Android para XML Attributes do android: layout_gravity , podemos fazer isso facilmente :)
fonte
Defina como true
android:layout_alignParentTop="true"
eandroid:layout_centerHorizontal="true"
no botão, assim:fonte
Você também pode experimentar este código:
fonte
basta usar (para torná-lo no centro do seu layout)
E use
mudar de posição
fonte
Você também pode definir a largura da LinearLayout para
wrap_content
e usoandroid:layout_centerInParent
,android:layout_centerVertical="true"
:fonte
Isso está funcionando para mim.
fonte
Você tentou isso?
fonte
usar
fonte
Seria mais fácil usar layouts relativos, mas para layouts lineares eu geralmente centralizo, certificando-me de que a largura corresponde ao pai:
e então apenas dê margens para a direita e esquerda de acordo.
fonte