French Utilisation TabHostExtras

sultan87

Active Member
Licensed User
Longtime User
Bonsoir
je voulais utiliser TabHostExtras
j'ai fait quelques essais qui me semblait être très bon
une fausse manip m'a fait perdre mon projet
j'ai voulu le reconstitué en reprenant l'exemple et je me retrouve avec ceci où je n'ai pas l'icon sur TAB#0
pouvez vous m'aider
il doit y avoir un problème de librairie
Pierre
 

Attachments

  • 2023_01_30_23.54.04.jpg
    2023_01_30_23.54.04.jpg
    129.1 KB · Views: 88

sultan87

Active Member
Licensed User
Longtime User
merci Klaus pour la réponse
ci-joint le projet d'origine récupéré sur le forum
Pierre
 

Attachments

  • TabHostExtras_v2_20.zip
    22 KB · Views: 75

klaus

Expert
Licensed User
Longtime User
Le problème est Android.
La version d'origine du programme a dans le Manifest Editor:
<uses-sdk android:minSdkVersion="4" /> donc très ancien.
Ce qui donne ceci:
Avec l'icône mais sans le menu !?
1675166560741.png


En modifiant dans le Manifest Editor:
<uses-sdk android:minSdkVersion="11" />
J'obtiens ceci:
Sans icône mais avec le menu ?!
1675166698253.png


Je crains que cette bibliothèque est obsolète et Google a changé son comportement.

En fouinant sur internet j'ai trouvé que cet object est 'déprécié' donc plus supporté.

1675167717912.png


Il faut utiliser TabLayout et ViewPager à la place.
Cherches sur le forum comment les utiliser, je n'ai jamais utilisé ce genre d'objet.
 

sultan87

Active Member
Licensed User
Longtime User
merci Klaus
comme je le disais tout au début
j'avais réussi à faire fonctionner avec cette librairie
une fausse manip a fait que j'ai supprimé mon test
impossible de le reproduire
je vais regarder TabLayout et ViewPager
j'avais relevé un autre projet TabHost simple qui fonctionne, mais que je voulais améliorer en présentation(ci-joint)
Pierre
 

Attachments

  • TabHost.zip
    489.5 KB · Views: 74

klaus

Expert
Licensed User
Longtime User
C'est exactement la même chose que j'ai expliqué dans mon précédent message.
Dans la Manifest Editor la version cible d'Android = 4 ! (android:minSdkVersion = 4)

1675178223058.png


Actuellement, la version cible requise par Google est 31 !
Comme déjà indiqué dès que tu mets la cible à 11 ou plus le comportement change.
 

sultan87

Active Member
Licensed User
Longtime User
Bonjour Klaus
je n'ai rien trouvé pour TabLayout et ViewPager
en revanche, j'ai trouvé TabStripExample (ci-joint)
la présentation est très sommaire, avec TabHostExtras on pouvait mettre des arrondis et des couleurs
est il possible de migrer la librairie TabHost, si oui comment faire
je suis étonné de ne pas trouver un exemple de beaux onglets
Pierre
 

Attachments

  • TabStripExample.zip
    10.9 KB · Views: 75

Mahares

Expert
Licensed User
Longtime User
je suis étonné de ne pas trouver un exemple de beaux onglets
Voici un projet aver de beaux onglets. J'ai modifie ton project. J'ai aussi ajoute 2 onglets de plus. TabstripViewPager est tres puissant.
 

Attachments

  • TabStripWithImagesForSultan.zip
    35.7 KB · Views: 81

sultan87

Active Member
Licensed User
Longtime User
Merci Mahares
je viens de télécharger le projet et de l'exécuter
Très bien
comment dimensionner les onglets pour obtenir le texte sur une ligne
Pierre
 

Attachments

  • capture 1.png
    capture 1.png
    13.6 KB · Views: 79

Mahares

Expert
Licensed User
Longtime User
comment dimensionner les onglets pour obtenir le texte sur une ligne
Trois choix:
B4X:
For Each lbl As Label In GetAllTabLabels(TabStrip1)  'based on 5 tabs
        lbl.Width = 30%x  'change the 20% to for example 30% to expand the tabs
    Next
Or you can replace the above code with something like this:
B4X:
For Each lbl As Label In GetAllTabLabels(TabStrip1)
        Dim lv As LayoutValues = GetDeviceLayoutValues
        If lv.ApproximateScreenSize > 6 Then
            lbl.Width = 20%x  ' you can play with is number
        Else
            lbl.Width = 30%x  ' you can play with is number
        End If
    Next

Another option is to change the size(22) in this line to size(16) or any other smaller number:
B4X:
cs.Initialize.Image(LoadBitmap(File.DirAssets, MyList.Get(i)), 40dip, 40dip, False).Append(CRLF).size(22).Append($"${c}"$)
 
Last edited:
Top