Mon application fonctionne pour l'API 19. Je ne peux donc pas utiliser Android: l'altitude. Donc, je app: élévation dans ma mise en page.
Android XML: Android: altitude par rapport à application: altitude
Par exemple :
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appBar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="5dp">
Comment changer app: élévation par programme? Je peux changer Android: altitude mais je ne trouve pas comment changer d'application: altitude!
Essayez d'utiliser le code suivant
ViewCompat.setElevation(View, int)
En suivant le lien ci-dessous. Ici a montré comment faire l'altitude sur un dispositif pré-Lollipop
La réponse acceptée ne fonctionnera pas réellement. La réponse aurait dû être mise à jour.
Si vous regardez pourquoi mAppBarLayout.setTargetElevation(0)
est obsolète. il déclare que:
L'élévation cible @deprecated est maintenant obsolète. L'élévation d'AppBarLayout est maintenant contrôlée via un {@link Android.animation.StateListAnimator}. Cette méthode renvoie maintenant toujours 0.
Donc, pour définir par programme la présentation de la barre d’application, vous ne pouvez le faire qu’en créant une StateListAnimator
telle que appbar_state_unelevated_animator
dans le dossier animator
res:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<objectAnimator
Android:propertyName="elevation"
Android:valueTo="4dp"
Android:valueType="floatType"
Android:duration="100"/>
</item>
puis en le chargeant dans le code comme ceci:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
appbar.stateListAnimator = AnimatorInflater.loadStateListAnimator(applicationContext, R.animator.appbar_state_unelevated_animator)
}
Si je ne me trompe pas, vous pouvez également créer un StateListAnimator
par code mais ne prenez pas ma parole pour cela.
Mettre à jour:
Dans mon expérience lorsque vous définissez le app: elevation = "// Toute valeur DP //"
L'ombre de la barre d'application sera perdue. Supprimez simplement cette ligne pour obtenir à nouveau l’ombre de la barre d’application.
Puisque vous essayez de changer l’altitude de la barre d’action, vous pouvez facilement utiliser cette ligne, qui fonctionnera avec l’API 19
getSupportActionBar().setElevation(0);
ou vous suivez ce lien et découvrez comment changer l'élévation des vues sur Android ci-dessous API 21 en général
La solution suivante est pour NativeScript
let nativeAnView = tnsView.Android;
var shape = new Android.graphics.drawable.GradientDrawable();
shape.setShape(Android.graphics.drawable.GradientDrawable.OVAL);
shape.setColor(Android.graphics.Color.parseColor('#30bcff'));
nativeAnView.setBackgroundDrawable(shape);
nativeAnView.setElevation(20);
sur Android
let nativeView = tnsView.ios;
nativeView.layer.shadowColor = new Color('#888888').ios.CGColor;
nativeView.layer.shadowOffset = CGSizeMake(0, 2.0);
nativeView.layer.shadowOpacity = 0.5;
nativeView.layer.shadowRadius = 5.0;
sur iOS
La réponse acceptée n'a pas fonctionné pour moi.
Pour supprimer l'ombre dans la barre d'outils, utilisez
app:elevation="0"
dans AppBarLayout xml ou
utilisez mAppBarLayout.setTargetElevation(0)
en Java.
Cela a fonctionné dans mon cas.