Aller au contenu

[Résolu] TabActivity : affichage des onglets


Recommended Posts

Posté(e) (modifié)

Bonjour

J'utilise un TabActivity : pour l'instant mes onglets sont en haut de l'écran. Comment faire pour les mettre en bas de l'écran ?

Merci d'avance

Modifié par TsCyrille
Posté(e)

Bonjour,

as-tu essayé d'intervertir le tabwidget et le framelayout ?

       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:padding="5dp">
           android:id="@android:id/tabcontent"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:padding="5dp" />        
           android:id="@android:id/tabs"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content" />


Exemple trouvé sur stackoverflow

Posté(e)

Merci pour ta réponse... Mais je n'utilise pas de layout. Voici mon code :

public class DetailDossier extends TabActivity {


   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);

   TabHost host = getTabHost();
   host.setup();

   host.addTab(host.newTabSpec("Client")
   .setIndicator("", this.getResources().getDrawable(R.drawable.erreur))
   .setContent(new Intent(this, DetailDossierClient.class)));


   /*host.addTab(host.newTabSpec("Europe")
           .setIndicator("", this.getResources().getDrawable(R.drawable.icon))
   .setContent(new Intent(this, SubActivity.class)));

   host.addTab(host.newTabSpec("Favorites")
   .setIndicator("", this.getResources().getDrawable(R.drawable.icon))
   .setContent(new Intent(this, SubActivity.class)));

   setDefaultTab(0);*/
   }
}

Comment faire dans ce cas ? Ou dois je me servir d'un layout comme dans ton exemple ?

Merci d'avance

Posté(e)

Oui, sans XML je pense que ça sera difficile d'inverser les deux. Toutefois, tu peux essayer d'étendre la classe TabHost pour obtenir ce que tu veux.

L'avantage de la séparation XML / code c'est de pouvoir dissocier le design du code ... Chose évidente quand on a 4 lignes de code, mais moins quand on a 15 activités dans son applis ...

Posté(e)

Je me disais que la solution n'était pas géniale. Du au fait qu'on dit au tabwidget de prendre toute la place.

Sinon essaye la première solution (framelayout en dessous de tabwidget) mais dans un relativelayout avec les propriétés suivantes pour les deux éléments :

Framelayout : android:layout_alignParentBottom="true"

Tabwidget : android:layout_alignParentTop="true"

Sinon y a la possibilité d'essayer avec weight.

Posté(e) (modifié)

En mettant cela :

    xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
       android:id="@android:id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
               android:layout_width="fill_parent"
               android:layout_height="fill_parent">

               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_alignParentBottom="true" />
               android:id="@android:id/tabcontent"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent" 
               android:layout_alignParentTop="true"/>


J'ai bien mes onglets en bas : merci beaucoup pour ton aide...

Mais il me reste un probleme : en fait le FrameLayout à l'air de prendre tout l'écran cad que je peux avoir de l'affichage derrière les onglets (et dans ce cas, les onglets ne marchent plus). Comment arrêter le FrameLayout au niveau du TabWidget ou plutot comment forcer l'affichage du TabWidget en bas de l'écran ?

Merci d'avance

Modifié par TsCyrille
  • Like 1
Posté(e)

Renseigne toi sur android:layout_weight, ça devrait améliorer sensiblement ton agencement.

Si j'ai le temps j'essaye chez moi ce soir. J'en aurai également besoin de toute façon.

Posté(e)

Ouf... J'ai enfin trouvé... Voici mon XML :

    xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
       android:id="@android:id/tabhost"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
           android:layout_width="fill_parent"
           android:layout_height="fill_parent">
               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_alignParentBottom="true">

               android:id="@android:id/tabcontent"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" 
               android:layout_alignParentTop="true"
               android:layout_above="@android:id/tabs">



Merci encore beaucoup pour ton aide...

Posté(e)

Celui qui a le plus bossé c'est toi :). Bien joué. En revanche tu peux fermer ton framelayout et ton tabwidget différement.

Le est inutile normalement. Tu peux le fermer façon XHTML : ;)

  • 8 months later...
  • 4 months later...
Posté(e) (modifié)

Bonjour.

Je plussoie on ne peut pas voir le code, quelqu'un pourrait-il nous éclairer ?

Merci à vous.

Edit :

Pour ceux qui cherchent toujours la réponse mais qui ne peuvent comme nous pas voir le XML, j'ai trouvé ce lien en cherchant un peu plus :

http://www.developpez.net/forums/d1106207/java/general-java/java-mobiles/android/conversion-menu-bouton-menu-onglets/

(cf. POST de vivelapsp : 08/07/2011, 14h13).

Le problème des onglets est résolu chez moi : les onglets s'affichent bien en bas. Petit détail génant toutefois : le style (graphique/design) des onglets suggère que le contenu est en dessous, je cherche à le personnaliser.

Modifié par cyberalternative

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...