Como definir as guias na parte inferior da tela no Android?
-
18-09-2019 - |
Pergunta
Estou trabalhando no TabActivity.
Eu quero mostrar meu tabwidget abaixo do tabcontent (Framelayout).
Eu fiz isso definindo o atributo da guia Tabwiget como
android:gravity="bottom"
Mas o Framelayout não pode se alinhar com essas guias.
Essas são as guias são mostradas na parte inferior da tela e se sobrepõem ao Framelayout
Como fazer isso? Se definir algum valor de altura para o Framelayout, ele não é otimizado para todas as telas do Android. O que posso fazer? qualquer ideia???
Solução
ou apenas use um personalizado de:http://code.google.com/p/androidtabs/
Permite guias no fundo
Outras dicas
O conceito básico por trás do Tab-Activity
do seguinte modo
TabHost
é um contêiner para uma visualização de janela com guias. Este objeto contém duas crianças: um conjunto de etiquetas de guias que o usuário clica para selecionar a guia específica e um objeto Framelayout que exibe o conteúdo dessa página.
O elemento individual é normalmente controlado usando esse objeto de contêiner, em vez de definir valores nos próprios elementos filhos.
TabWidget
Exibe uma lista de etiquetas de guias representando cada página na coleção de guias dos pais. O objeto de contêiner para este widget é Tabhost. Quando um usuário seleciona uma guia, esse objeto envia uma mensagem para o contêiner, tabhost, para dizer para alternar a página de exibição. O Tabhost do contêiner é usado para adicionar rótulos, adicionar o manipulador de retorno de chamada e gerenciar retornos de chamada.
Então ajuste seu layout da seguinte maneira -
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="-3dip"
android:layout_weight="0" >
</TabWidget>
</LinearLayout>
</TabHost>
Exemplos do Android para o resgate!
http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
Basta trocar o TabContent e as guias em res/layout/main.xml:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Por favor, verifique o seguinte link
Existem duas maneiras de exibir guias na parte inferior de uma atividade de guia.
1) Usando o layout relativo 2) usando o atributo layout_weight
http://justkumar.blogspot.com/2011/09/tabs-at-bottom-of-tabactivity-by.html
Verifique isso
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TabWidget
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="bottom"
android:id="@android:id/tabs">
</TabWidget>
</FrameLayout>
</LinearLayout>
este é o código para a guia inferior
<TabWidget
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:background="#0000"
android:id="@android:id/tabs"
/>
"android:layout_gravity="bottom"