2017-08-14 55 views
0

我想給我的EditText一點透明效果。當我第一次使用透明度值設置EditText背景時,它可以正常工作,但是當我給出高程值以獲得陰影效果時,它就不合作。Android上的陰影效果與仰角視圖不起作用的透明背景

這裏是佈局的xml:

<RelativeLayout 
    android:id="@+id/searchLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/toolBar" 
    android:background="@drawable/search_layout_background" 
    android:elevation="4dp" 
    android:layout_margin="16dp"> 

    <EditText 
     android:id="@+id/txtSearch" 
     android:layout_width="match_parent" 
     android:layout_height="36dp" 
     android:background="@drawable/edit_text_border" 
     android:inputType="textPersonName" 
     android:imeOptions="actionSearch" 
     android:paddingLeft="36dp" 
     android:paddingRight="36dp" 
     android:hint="Search"/> 

    <ImageView 
     android:id="@+id/btnSearch" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:padding="4dp" 
     android:src="@drawable/ic_search"/> 

    <ImageView 
     android:id="@+id/btnClear" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:padding="4dp" 
     android:layout_alignParentRight="true" 
     android:src="@drawable/ic_clear"/> 

</RelativeLayout> 

這裏是search_layout_background.xml的繪製資源:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

    <solid android:color="#FFFFFFFF" /> 
    <corners android:radius="4dp"/> 

</shape> 

你可以看到Alpha值這裏是FF,但是當我改變有一點,即使只是成爲FE,陰影也不見了。任何想法如何給陰影以及透明度效果?謝謝

PS:我剛剛發現了一些有趣的事情,如果我將RelativeLayout的背景值更改爲#AAFFFFFF,它實際上可行。現在我可以獲得帶有陰影效果的透明度視圖。但如果我這樣做,那麼我的佈局將不會有圓角效果,因爲我把它放在我的search_layout_background.xml中。我不知道爲什麼它在使用search_layout_background.xml時不起作用。

+0

這是一個重複,以https://stackoverflow.com/questions/27477371/android-elevation-not-showing -a-shadow –

回答

0

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 
    android:id="@+id/searchLayout" 
 
    android:layout_width="wrap_content" 
 
    android:layout_height="wrap_content" 
 
    android:layout_below="@+id/toolBar" 
 
    android:layout_margin="16dp" 
 
    android:background="#eaeaea" 
 
    android:elevation="4dp"> 
 

 
    <LinearLayout 
 
     android:layout_width="match_parent" 
 
     android:layout_height="wrap_content" 
 
     android:elevation="17dp"> 
 

 
     <EditText 
 
      android:id="@+id/txtSearch" 
 
      android:layout_width="match_parent" 
 
      android:layout_height="36dp" 
 
      android:background="#00444444" 
 
      android:hint="Search" 
 
      android:imeOptions="actionSearch" 
 
      android:inputType="textPersonName" 
 
      android:paddingLeft="36dp" 
 
      android:paddingRight="36dp" /> 
 
    </LinearLayout> 
 

 
    <ImageView 
 
     android:id="@+id/btnSearch" 
 
     android:layout_width="36dp" 
 
     android:layout_height="36dp" 
 
     android:padding="4dp" 
 
     android:src="@drawable/ic_search" /> 
 

 
    <ImageView 
 
     android:id="@+id/btnClear" 
 
     android:layout_width="36dp" 
 
     android:layout_height="36dp" 
 
     android:layout_alignParentRight="true" 
 
     android:padding="4dp" 
 
     android:src="@drawable/ic_clear" /> 
 

 
</RelativeLayout>

+0

到目前爲止,這是我想要的最接近的答案,但我認爲應該給根佈局的背景賦予alpha值,因爲如果佈局本身不透明,那麼也不是孩子。 – user3576118

2

嘗試包裝你的Search RelativeLayoutCardview

<CardView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="16dp" 
    app:cardElevation="6dp" 
    android:layout_below="@+id/toolBar"> 

     <RelativeLayout 
      android:id="@+id/searchLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

       <EditText../> 

       <ImageView../> 

       <ImageView../> 

     </RelativeLayout> 
</CardView> 
+0

使用CardView也會給出好的結果。但我也必須做一些調整。現在唯一的問題是CardView會造成奇怪的填充效果。謝謝 – user3576118