Supprimer l'ombre en-dessous de actionbar
- Je utiliser actionbarsherlock. Le morceau de code ci-dessous est responsable de la modification de fond à un programme personnalisé.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Et il fonctionne pour actionbarsherlock (sur les versions ci-dessous en nid d'abeille). Mais dans ICS j'ai une ombre en dessous de actionbar que je ne veux pas. Qu'est-ce que l'élément de style pour le faire disparaître?
InformationsquelleAutor Michał K | 2012-09-03
Vous devez vous connecter pour publier un commentaire.
Afin de supprimer l'ombre ajouter à votre application thème:
Mise à JOUR:
Comme @Quinny898 a déclaré, sur Android 5.0, cela a changé, vous devez appeler
setElevation(0)
sur votre barre d'action. Notez que si vous utilisez la bibliothèque de prise en charge, vous devez appeler à celle de la sorte:getSupportActionBar().setElevation(0);
ne fonctionne pas. Donc, vous avez mis<item name="android:windowContentOverlay">@null</item>
dans votre application thème. J'ai eu le même problème. Maintenant, j'ai les deux d'entre eux. setElevation de et a ajouté windowContentOverlay élément dans l'application thème. setElevation fonctionne pour android 5.0 et alors que l'autre travaille pour le pré-sucette. Cheers!getSupportActionBar().setElevation(0);
, vous devez appeler cette fonction avant d'setContentView()
pour que cela fonctionne.Pour Android 5.0, si vous voulez mettre directement dans un style d'usage:
et pour le Soutien de la bibliothèque de compatibilité d'utilisation:
Exemple de style pour un AppCompat lumière thème:
Ensuite appliquer cette coutume ActionBar style pour vous app thème:
Pour pré 5.0 d'Android, ajouter ce trop pour votre application thème:
windowContentOverlay
à l'action bar à thème, de ne pas l'application d'un thème.android:elevation
pour Lollipop périphériques). Je n'arrive pas à le faire, à l'aide de cette approche. Je crois qu'il serait assez simple. Mettre une valeur non nulle pour l'élévation des attributs et des thats serait-il.android:windowContentOverlay
sur la pré sucette API? Je ne peut pas compiler si mon minSDK est pré sucette mais l'objectif est de 21?<style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
sansstyle/
dansparent
attribut.actionBarStyle
, mais ne fonctionne pas pouractionBarTheme
. Pourquoi donc?Sur Android 5.0, cela a changé, vous devez appeler setElevation(0) sur votre barre d'action. Notez que si vous utilisez la bibliothèque de prise en charge, vous devez appeler à celle de la sorte:
C'est pas affectée par la windowContentOverlay élément de style, donc pas de changements de styles sont nécessaires
ajouter
app:elevation="0dp"
dans AppBarLayout pour se cacher dans l'ombre d'applications alotSi vous travaillez avec ActionBarSherlock
Dans votre thème ajouter ceci:
Vous devez définir application:elevetor="0dp" dans android.de soutien.de la conception.widget de.AppBarLayout et puis ça marche 😀
mais pas
a fonctionné pour moi sur android L
J'ai ce même problème, et j'ai réussi à résoudre ce problème. Tout ce que vous avez à faire est de simplement changer l'altitude de 0 à virgule flottante valeur de l'activité dans laquelle vous souhaitez supprimer l'élévation.
Si vous souhaitez modifier une activité qu'on appelle
MyActivity.java
de sorte que vous devez obtenir de laActionBar
premier.D'abord importer les
ActionBar
classeaprès l'importation, vous devez les initialiser une variable de la barre d'action et de jeu de son élévation à 0.
Pour Xamarin Développeurs, veuillez utiliser :
SupportActionBar.Elevation = 0;
pourAppCompatActivity
ouActionBar.Elevation = 0;
pour les non-compat ActivitésPour ceux qui travaillent sur des fragments et il a disparu après la mise
toolbar.getBackground().setAlpha(0);
ou de toute disparition, je pense que vous devez apporter votre AppBarLayout dernier dans le xml, de sorte que son Fragment puis AppBarLayout puis relativelayout/contrainte/linéaire selon u utilisation.Solution pour Kotlin (Android 3.3, Kotlin 1.3.20)