IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

ActionBar avec titre personnalisé


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut ActionBar avec titre personnalisé
    Bonjour,

    Je suis en train de mettre en place une "actionBar".
    Cela parait particulièrement intéressant, sauf que je souhaiterais ajouter un titre personnalisé contenant notamment des boutons (Acceuil, retour, déconnexion, etc. ) qui ne doivent pas apparaitre dans la barre en bas de l'application.

    J'ai vu sur le projet "GreenDroid" que cela semble possible, mais je ne parviens pas à trouver comment.

    Également, est-il possible de dire que des éléments affichés en "Portrait" n'apparaissent pas en "Paysage" ? (5 boutons dans l'action bar "Portrait", les 2 derniers boutons sont affichés dans l'actionBar "Paysage" par exemple).

    Pour faciliter la compréhension de la demande, je vous fournis le code en relation avec cette demande :

    Fichier "HomeActivity" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    public class HomeActivity extends Activity {
    	public void onCreate(Bundle savedInstanceState) {
    		// getWindow().requestFeature(Window.FEATURE_PROGRESS);
     
    		super.onCreate(savedInstanceState);
     
    		setContentView(R.layout.advanced_parameter);
            }
        @Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		MenuInflater inflater = getMenuInflater();
    		inflater.inflate(R.menu.menu, menu);
    		return true;
    	}
     
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		Toast.makeText(this, "MenuItem " + item.getTitle() + " selected.", Toast.LENGTH_SHORT).show();
    		return true;
    	}
    }
    advanced_parameter.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/RelativeLayout01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
     
        <WebView
            android:id="@+id/webkit_adv_param"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
     
    </RelativeLayout>
    res/menu/menu.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:id="@+id/open" android:showAsAction="ifRoom|withText" android:title="Open" android:icon="@drawable/ic_action_mail"></item>
        <item android:id="@+id/save" android:showAsAction="ifRoom|withText" android:title="Save" android:icon="@drawable/ic_action_mail"></item>
        <item android:id="@+id/close" android:showAsAction="ifRoom|withText" android:title="Close" android:icon="@drawable/ic_action_mail"></item>
        <item android:id="@+id/history" android:showAsAction="ifRoom|withText" android:title="History" android:icon="@drawable/ic_action_stat"></item>
        <item android:id="@+id/settings" android:showAsAction="ifRoom|withText" android:title="Settings" android:icon="@drawable/ic_action_settings"></item>
    </menu>
    Android Manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    	package="home.ihmandroid" android:versionCode="1" android:versionName="1.0">
    	<uses-sdk android:minSdkVersion="15" />
    	<!-- Permettre à l'application de connaitre les données du téléphone -->
    	<uses-permission android:name="android.permission.READ_PHONE_STATE" />
    	<!-- Permettre à l'application d'utiliser Internet -->
    	<uses-permission android:name="android.permission.INTERNET" />
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     
    	<application android:icon="@drawable/ic_launcher"
    		android:label="@string/app_name"
    		android:uiOptions="splitActionBarWhenNarrow">
    ...
    </manifest>
    Avez-vous une idée de comment faire pour surcharger le titre ?

    NB : avant j'utilisais CustomWindow (http://www.londatiga.net/it/how-to-c...le-in-android/), mais ceci est incompatible avec "ActionBar".

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Je te conseille une seule chose : abandonne GreenDroid. (Cette librairie n'est plus mise à jour depuis plus d'un an)
    ActionBarSherlock est ce qu'il te faut.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Bonjour,

    Je suis en effet en train de regarder Sherlock.
    Mais pour le moment je n'ai pas trouvé de réponse à mon problème via cette librairie.
    Je vais m'en servir pour d'autres éléments, mais pour la barre de titre customisée ...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Pourrais-tu simplement nous montrer ce que tu souhaites obtenir (avec Paint, juste un petit dessin), pour que l'on puisse te dire si cela est envisageable ou non.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Voici les screnshots de l'appli avant que je mette en place l'actionBar.

    Le but serait donc de faire que les boutons de l'action barre se mettent à droite de "déconnexion" (tout le titre se réduisant en paysage du fait que l'action barre est présente en haut en mode paysage).

    Ceci clarifie-t-il la demande ?
    Images attachées Images attachées  

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Bonjour,

    Après quelques recherches, j'ai trouvé des choses "intéressantes" que je vais essayer de mettre en place. Dans la démo de "actionBarSherlock", 2 points permettraient de faire ce que je souhaite :
    - "Action items display" : permet de forcer l'affichage d'items en haut à droite de l'écran. -->je ne parviens pas à le faire pour le moment (utilisation incorrecte de la méthode "invalidateOptionsMenu" ?).
    - "Home as up display" : une flèche à gauche du logo apparait --> Facile à mettre en place, il reste à ajouter le listener.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    public class ConnectionActivity extends SherlockActivity implements ActionBar.TabListener
    {
     
    	Intent m_intent;
    	String m_login;
    	String m_password;
    	ActionBar m_actionBar;
    	private static final String TAG = "ConnectionActivity";
     
    	@Override
    	public void onCreate(Bundle savedInstanceState)
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
     
    		m_actionBar = getSupportActionBar();
    		m_actionBar.setHomeButtonEnabled(true);
    		m_actionBar.setSubtitle("TOTO");
    		m_actionBar.setDisplayHomeAsUpEnabled(true);
                    this.invalidateOptionsMenu();
           }
           public boolean onCreateOptionsMenu(Menu menu)
    	{
    		// MenuInflater inflater = getSupportMenuInflater();
    		// inflater.inflate(R.menu.menu, (Menu) menu);
    		// menu.add("Search")
    		// .setIcon(R.drawable.ic_action_refresh)
    		// .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
    		// MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		// return super.onCreateOptionsMenu(menu);
    		menu.add("Places").setIcon(R.drawable.ic_action_delete).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		menu.add("Layers").setIcon(R.drawable.ic_action_mail).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		menu.add("My Location").setIcon(R.drawable.ic_action_overflow).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		menu.add("Search").setIcon(R.drawable.ic_action_refresh).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		menu.add("Directions").setIcon(R.drawable.ic_action_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    		menu.add("Starred Places").setIcon(R.drawable.ic_action_settings);
    		menu.add("Clear Map").setIcon(R.drawable.ic_action_stat);
    		menu.add("Join Latitude").setIcon(R.drawable.ic_action_delete);
    		// Whatever else is under the "More" menu
    		return true;
     
    	}
    }
    EDIT : "invalidateOptionsMenu" permet d'ajouter un item à la barre existante. Ne répond donc pas à ma demande ici car j'utilise une "splitActionBarWhenNarrow" afin que la barre soit en bas. Il semble que ce soit tout de même possible car l'application mail par défaut d'androïd affiche, en haut à droite le nombre de mails non lu, et en bas la barre. C'est exactement ce que je veux (sauf que ce ne sera pas un nombre, mais un bouton).

Discussions similaires

  1. comment faire un cadre avec titre SUR le bord
    Par adaneels dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 16/10/2007, 13h20
  2. [Débutant] Tableau avec titres
    Par saddamtohmto dans le forum MATLAB
    Réponses: 1
    Dernier message: 24/08/2007, 10h38
  3. Type mismatch avec type personnalisé
    Par hn2k5 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2007, 19h46
  4. PB avec titre de champs de table numérique
    Par jexl dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/09/2005, 22h22
  5. [JFrame] Taille de la fenêtre complète (avec titre et bordures)
    Par RXN dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 23/09/2005, 23h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo