Eu já vi algumas conversas sobre isso, mas nada definitivo. Existe uma maneira de colocar as guias em um TabWidget na parte inferior da tela? Se sim, como?
Eu tentei o seguinte, mas não funcionou:
a) definindo a guia da guia abaixo do layout da moldura
b) definindo a gravidade da guia da guia como "inferior"
Obrigado! llappall
Respostas:
Aqui está a solução mais simples, robusta e escalável para obter guias na parte inferior da tela.
layout_height
comowrap_content
em FrameLayout e TabWidgetandroid:layout_weight="1"
android:layout_weight="0"
(0 é o padrão, mas para ênfase, legibilidade, etc.)android:layout_marginBottom="-4dp"
(para remover o divisor inferior)Código completo:
fonte
layout_weight=1
no FrameLayout. Isso permite que o controle da guia "reivindique" sua altura do LinearLayout primeiro.android:layout_marginBottom="-5px"
ao TabWidget. Isso moverá o TabWidget da parte inferior da tela 5 pixels, apenas o suficiente para que você não veja o divisor. O FrameLayout compensará o tamanho para que funcione perfeitamente. Não tenho certeza se o tamanho do divisor muda em dispositivos maiores ou não. Você pode ter que usar emdp
vez depx
.Experimente;) Assista ao conteúdo do FrameLayout (@ id / tabcontent), porque não sei como ele irá lidar em caso de rolagem ... No meu caso, funciona porque usei o ListView como o conteúdo das minhas guias . :) Espero que ajude.
fonte
Existe uma maneira de remover a linha.
1) Siga este tutorial: abas-android-com-fragmentos
2) Aplique a alteração RelativeLayout sugerida por Leaudro acima (aplique os adereços de layout a todos os FrameLayouts).
Você também pode adicionar um ImageView ao tab.xml no item 1 e obter uma aparência muito parecida com o iPhone nas guias.
Aqui está uma captura de tela do que estou trabalhando no momento. Ainda tenho trabalho a fazer, principalmente fazer um seletor para os ícones e garantir uma distribuição horizontal igual, mas você entendeu. No meu caso, estou usando fragmentos, mas os mesmos princípios devem ser aplicados a uma visualização de guia padrão.
fonte
Não tenho certeza se ele funcionará para todas as versões do Android (especialmente aquelas com itens de interface do usuário personalizados), mas consegui remover a barra cinza na parte inferior adicionando
para o XML do TabWidget ...
fonte
Para todos aqueles que tentam remover a linha de separação do tabWidget, aqui está um projeto de exemplo (e seu respectivo tutorial), que funciona muito bem para personalizar as guias e, assim, remover problemas quando as guias estão na parte inferior. Projeto Eclipse: android-custom-tabs ; Explicação original: blog ; Espero que isso tenha ajudado.
fonte
Existem duas maneiras de exibir guias na parte inferior de uma atividade da guia.
Por favor, verifique o link para mais detalhes .
fonte
fonte
Isso pode não ser exatamente o que você está procurando (não é uma solução "fácil" enviar suas guias para a parte inferior da tela), mas é uma solução alternativa interessante que eu gostaria de sinalizar para você:
O ScrollableTabHost foi projetado para se comportar como o TabHost, mas com uma visualização de rolagem adicional para acomodar mais itens ...
talvez, se você se aprofundar neste projeto de código aberto, encontrará uma resposta para sua pergunta. Se eu vir algo mais fácil, voltarei para você.
fonte
Eu estava tendo o mesmo problema com as guias do Android ao tentar colocá-las na parte inferior da tela. Meu cenário era não usar um arquivo de layout e criar as guias no código, eu também estava procurando disparar atividades de cada guia que pareciam um pouco complexas usando outras abordagens, então, aqui está o código de exemplo para solucionar o problema:
adicionando-guias-no-android-e-colocando-os
fonte
Sim, veja: link , mas ele usou layouts xml, não atividades para criar uma nova guia, então coloque seu código xml (defina paddingTop para FrameLayout - 0px) e escreva o código:
}
fonte
Eu recomendo usar esse código para um trabalho estável, otimizado para fragmentos aninhados na guia (por exemplo, MapFragment aninhado) e testado em "não manter atividades": https://stackoverflow.com/a/23150258/2765497
fonte