La position du centre de logo dans la Barre d'Action Android
Je veux afficher le logo au centre de la Barre d'Action. Voici ma mise en page personnalisée code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ActionBarWrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:layout_centerInParent="true"
android:padding="8dp"/>
</RelativeLayout>
Et dans le onCreate()
je suis en l'utilisant comme:
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.custom_logo);
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#2A2A2A")));
Le problème est qu'il s'affiche bien dans la normale des Fragments et de l'Activité, mais déplace un peu vers la droite lorsqu'il est utilisé avec Tiroir de Navigation. Voici les images:
- Mauvais:
- Droite:
Ce que je fais mal? Merci.
- stackoverflow.com/questions/12750013/...
- Pas le même problème.
InformationsquelleAutor Abhishek Dey | 2015-09-30
Vous devez vous connecter pour publier un commentaire.
Puis essayez de la Barre d'outils. Essayez ce code
Essayez d'utiliser Linéaire de la mise en page et
layout_gravity
comme ceci :espoir aide
Ajouter
app:contentInsetLeft="0dp"
à votreandroid.support.v7.widget.Toolbar
, parce que d'une barre d'outils avec le menu automatiquement le tiroir avoir une marge de droite.J'ai utilisé un Drawable comme arrière-plan de la Barre d'Action. De cette façon, vous pouvez utiliser différents MenuItem sur la gauche et/ou droite et le logo sera à chaque fois centré.
Je devais animer aussi le logo quand il a été chargé par Picasso, et voici le résultat:
J'ai utilisé un LayerDrawable pour animer juste un Drawable (une couche) en elle.
C'est le code, peut-être pourrait être utile pour quelqu'un:
Et c'est le showActionBarLogo fonction pour afficher et masquer la barre d'Action de logo:
J'ai créé un drawable pour la Barre d'Action avec:
logo dans le milieu de l'informatique (avec animation de fondu)
Je charge le logo avec Picasso et j'aime animer il a été chargé (bitmap onBitmapLoaded de rappel).
Garder à l'esprit pour déclarer Picasso Cible de showActionBarLogo fonction pour éviter le problème d'ordures sur le chargement des images:
Si vous n'avez pas besoin de le Picasso de chargement, vous pouvez utiliser uniquement le code dans
onBitmapLoaded
fonction et à l'aide d'un Drawable à la place de l'image bitmap variable.Même chose si vous n'avez pas besoin de l'animation de fondu. Vous pouvez supprimer le
layers[1].setAlpha(0);
ligne et aussi de tous lesObjectAnimator
lignes.Je l'ai testé à partir d'Android 4.4 (api 19) 8,1 (api 27) et il fonctionne très bien!
J'espère que cela pourrait vous aider!
À l'aide de l'attribut clip_horizontal a fait le tour pour moi.