Quero mostrar um botão sob a ListView
. O problema é que, se o ListView
for estendido (itens adicionados ...), o botão será empurrado para fora da tela.
Eu tentei um LinearLayout
com pesos (como sugerido no Android: por que não há maxHeight para um View? ), Mas ou achei os pesos errados ou simplesmente não funcionou.
Além disso, encontrei em algum lugar a dica para usar a RelativeLayout
. O ListView
seria então definido acima do botão com o android:layout_above
parâmetro.
O problema com isso é que não sei como posicionar o botão depois. No exemplo que encontrei, a visualização abaixo do ListView
foi ajustada usando android:layout_alignParentBottom
, mas não quero que meu botão grude na parte inferior da tela.
Alguma ideia além de usar o método setHeight e alguns cálculos do espaço necessário?
Edit: recebi muitas respostas úteis.
A solução da bigstone's & user639183 quase funcionou perfeitamente. No entanto, eu tive que adicionar um preenchimento / margem extra na parte inferior do botão, já que ele ainda seria empurrado para fora da tela (mas depois parado)
A resposta de Adinia com o layout relativo só é adequada se você quiser que o botão seja fixado na parte inferior da tela. Não é o que eu pretendia, mas ainda pode ser útil para outras pessoas.
A solução da AngeloS foi a que escolhi no final, pois ela acabou de criar os efeitos que eu queria. No entanto, fiz duas pequenas alterações ao
LinearLayout
redor do botão:Primeiro, como eu não queria ter nenhum valor absoluto em meu layout, mudei
android:layout_height="45px"
parawrap_content
, o que também funciona bem.Em segundo lugar, como eu queria que o botão ficasse centralizado horizontalmente, o que só é suportado pela vertical
LinearLayout
, alterei android :idance = "horizontal" para "vertical".
AngeloS também afirmou em sua postagem inicial que não tinha certeza se o
android:layout_weight="0.1"
parâmetro emLinearLayout
torno doListView
teve algum efeito; Eu apenas tentei e realmente funciona! Sem, o botão é empurrado para fora da tela novamente.
android:layout_alignParentBottom="true"
. Mas, para ser claro, você deseja que o botão permaneça anexado à parte inferior do ListView quando houver poucos itens? Se sim, veja o que diz Rich.