2015-12-29 67 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”在一起,以解决所有这些问题。 –