L'élévation ne travaille pas sur un LinearLayout
Après la recherche d'une solution, je n'ai pas trouvé pour résoudre mon problème.
J'ai une certaine altitude qui produit une ombre sur une grande partie de mon application.
Mais dans un lieu particulier, je ne suis pas en mesure de faire le travail.
(C'est là où j'ai mis une flèche sur la photo ci-dessous)
La zone blanche en dessous de la barre d'outils est un Fragment
qui affiche un LinearLayout
mise en page:
<LinearLayout
android:id="@+id/panelAddress"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_flat_white"
android:elevation="10dp"
android:orientation="vertical"
android:padding="20dp"
>
//some content
</LinearLayout>
Le parent du Fragment :
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawerLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/custom_toolbar"
layout="@layout/toolbar"/>
<RelativeLayout
android:id="@+id/mapLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:id="@+id/fragment_container_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
/>
<FrameLayout
android:id="@+id/fragment_container_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Avez-vous une idée de pourquoi je ne reçois pas mon élévation?
- La couleur de l'arrière-plan de la linearlayout rouge, juste pour savoir de quoi il s'région est vraiment. Il pourrait s'étendant sur tout le fragment.
- Il prend le bon endroit..
- Avez-vous essayez android:outlineProvider="limites" dans votre fragment?
Vous devez vous connecter pour publier un commentaire.
Comme décrit ici https://stackoverflow.com/a/27518160/2481494 il y a plusieurs exigences, de sorte que l'ombre est dessinée:
Espace pour l'ombre dans le des parents, Groupe. Comme bleeding182 mentionné, le rembourrage peut causer de l'ombre à être tondus:
Cependant, cela peut être corrigé avec
android:clipToPadding="false"
dans le parent.La vue en élévation doit avoir un fond de projeter une ombre. Sans informations sur votre
@drawable/button_flat_white
je ne peux pas dire si c'est un problème dans votre cas.Pour résoudre votre problème, vous devez modifier votre FrameLayout comme ceci:
Pour vérifier si votre
@drawable/button_flat_white
des causes des problèmes, essayez de changer le fond de votre LinearLayout à une simple couleur temporairement:Juste faire CardView en tant que parent de votre LinearLayout et vous pouvez atteindre l'altitude.
Si l'élévation est pas le travail que vous pouvez créer vous XML en donnant la référence en fond d'écran sur le LinearLayout :
shadowfile.xml
Ajouter comme ça :
De sortie :
C'est un dessin problème.
L'ombre portée est à l'extérieur des opinions réelles limites, si les Parents de mise en page n'est pas "donner" le point de vue de l'espace, il sera tronqué.
Depuis que les parents de l'fragment Linéaire (modèle) est de la même taille, l'ombre est coupée. Ajouter une marge sur le fond de la LinearLayout.
Si cela ne fonctionne pas essayez d'emballer la mise en page avec un FrameLayout avec un peu de marge sur le fond (Ne PAS utiliser un rembourrage. Un rembourrage sur la framelayout permettra également de réduire l'ombre off)
1-2dp devrait le faire.
j'espère qu'elle vous aider, il suffit d'ajouter"marginTop" dans le second schéma.
J'ai utilisé
paddingRight
etpaddingBottom
(pour l'ombre en bas et à droite de la page) puis il a travaillé pour moi, il montre une ombre sinon le drawable ombre ne fonctionnera pas correctement.Faire une telle chose si vous en face d'un même problème.
S'il vous plaît activer hardwardAccelerated option dans le fichier de manifeste,
hardwareAccelerated
??