2015-12-29 71 views
1

我試圖擡高添加到我的自定義按鈕,但結果是: image of the shadow高程陰影被裁剪

正如你可以看到影子不顯示好下面的按鈕。我曾嘗試在計算器搜索和谷歌,我發現類似的問題,但沒有答案:)

XML:

<Button 
    android:id="@+id/email_sign_in_button" 
    android:layout_width="141dp" 
    android:layout_height="45dp" 
    android:textAlignment="gravity" 
    android:text="@string/action_sign_in" 
    android:gravity="center_horizontal" 
    android:elevation="4dp" /> 

這裏是我的自定義按鈕樣式。 button.xml:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_enabled="false" 
    android:drawable="@drawable/button_disabled" /> 
<item 
    android:state_pressed="true" 
    android:state_enabled="true" 
    android:drawable="@drawable/button_pressed" /> 
<item 
    android:state_focused="true" 
    android:state_enabled="true" 
    android:drawable="@drawable/button_regular" /> 
<item 
    android:state_enabled="true" 
    android:drawable="@drawable/button_regular" /> 
</selector> 

風格時未按。 button_regular.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
<gradient android:angle="-90" 
    android:centerX="10" 
    android:centerY="10" 
    android:endColor="#30bbff" 
    android:gradientRadius="10" 
    android:startColor="#0081c0" 
    android:type="linear"/> 
<stroke android:width="5dip" android:color="#ffffff" /> 
<corners android:radius="20dip"/> 
<padding android:left="7dp" 
    android:top="7dp"/> 
</shape> 

請幫忙!

回答

5

您的陰影可能會被視圖邊界限制。嘗試添加填充到按鈕的底部。

如果按鈕位於父級的底部,則父級ViewGroup也可能會剪裁陰影。確保父項具有填充並在父項上設置android:clipToPadding="false"

+0

如果您可以負擔添加填充,但是在大多數情況下額外的填充效果看起來很差,這會起作用。標準高程(不適用剪切)可以在其他視圖上繪製陰影,必須有一種方法來實現相同的結果,而不添加填充。 – behelit

+1

@behelit我認爲你可以使用android:clipChildren =「false」和android: clipToPadding =「false」在一起,以解決所有這些問題。 –