Elevation在LinearLayout上不起作用

问题描述:

我正在为我的Android应用程序构建我的自定义布局,并且我正在向一个LinearLayout添加高程,但它不起作用,我尝试了很多在web上找到的解决方案,但没有成功。Elevation在LinearLayout上不起作用

我的XML是这样的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="horizontal" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:padding="10dp"> 

<de.hdodenhof.circleimageview.CircleImageView 
    android:layout_width="40dp" 
    android:layout_height="40dp" 
    android:src="@drawable/admin_gray" 
    app:civ_border_width="2dp" 
    app:civ_border_color="@android:color/darker_gray" 
    android:layout_marginRight="10dp"/> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/tvNewsAggiuntoCommentoDescrizione" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Username ha commentato una ricetta:"/> 

     <TextView 
      android:id="@+id/tvNewsAggiuntoCommentoData" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="25/05/1989 12:58:07" 
      android:textColor="@android:color/darker_gray" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:background="@color/white" 
     android:elevation="10dp"> 

     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/rounded_linear_layout_tile_ricetta" 
      android:layout_marginBottom="5dp" 
      > 

      <ImageView 
       android:id="@+id/imageViewRicetta" 
       android:layout_width="match_parent" 
       android:layout_height="150dp" 
       android:src="@mipmap/cibo" 
       android:scaleType="centerCrop"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Antipasto" 
       android:background="@color/colorCategoriaRicetta" 
       android:layout_alignBaseline="@id/imageViewRicetta" 
       android:layout_gravity="right|top" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="@android:color/white" 
       android:padding="3dp" 
       android:id="@+id/tvCategoriaRicetta" 
       android:elevation="4dp"/> 

      <TextView 
       android:id="@+id/tvTitoloRicetta" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Maxi hamburger con maionese" 
       android:background="@color/colorBackgroundTextViewNomeRicetta" 
       android:layout_alignBaseline="@id/imageViewRicetta" 
       android:layout_gravity="left|bottom" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:textColor="@android:color/white" 
       android:paddingLeft="5dp" 
       android:textStyle="bold" /> 

     </FrameLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <de.hdodenhof.circleimageview.CircleImageView 
       android:id="@+id/imageViewFotoAltroUtente" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginLeft="10dp" 
       android:src="@drawable/admin_gray" 
       app:civ_border_width="2dp" 
       app:civ_border_color="@android:color/darker_gray" /> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="5dp"> 

       <TextView 
        android:id="@+id/tvUsernameUtenteCommento" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:textStyle="bold" 
        android:text="Username"/> 

       <TextView 
        android:id="@+id/tvNewsAggiuntoCommentoCommento" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Questo è il testo di esempio di un commento a una ricetta"/> 

      </LinearLayout> 

     </LinearLayout> 

    </LinearLayout> 


</LinearLayout> 

关注,随着海拔的布局是不是*的LinearLayout,它与 “提升” 属性布局...

你能帮忙我找到一个解决方案,以获得正确的海拔?

非常感谢。

+0

你能提供的示例屏幕截图样机什么你想让结果看起来像? –

+0

使用高程的最佳方式是在卡片视图中。否则,它太麻烦了。 – AeriaGlorisia

此礼添加到您LinearLayout

android:outlineProvider="bounds" 

确保所有视图父母从你想设置海拔没有填充的元素。这可能会导致阴影被剪切。一种用于该解决方案是这样的属性添加到所有父视图:

android:clipToPadding="false" 

另外,如果你有这条线在清单中的阴影不会显示:

android:hardwareAccelerated="false" 
+0

嗨@GuilhermeFGL,感谢您的回答,我在LL上插入了您的行,并且我不清楚清单中的行,无论如何它不工作... –

+0

什么是您用来测试视图? – GuilhermeFGL

+0

它是API 24(Android 7.0) –