我需要删除从 xamarin 表单中点击我的 android 按钮时出现的阴影。(如上图所示。当 yes 和 no 原本是相同颜色时。按下 no 时,会在其上投射阴影,使其颜色变暗)
我按照如何删除 Xamarin Forms 上按钮的阴影中所述的示例进行操作, 但由于我的按钮颜色应该是红色,因此我没有将 PCL 中的背景颜色更改为红色。但是当点击时,阴影仍然出现在 android 按钮上。
然后,我点击了这个链接:https : //forums.xamarin.com/discussion/122752/removing-shadow-from-android-buttons 但我按钮上的阴影仍然存在。我认为就像链接中所说的那样,因为我的 xamarin 表单版本是 2.5.0.280555,所以他们提供的解决方案将不起作用。
如果我仍然需要将我的 xamarin 表单版本保持为 2.5.0.280555,那么在点击我的 Xamarin.Forms 项目时需要删除 android 按钮阴影时,是否有人对我可能做的事情有任何建议或解决方案?
它在这里说该问题已在以后的版本中解决:https : //github.com/xamarin/Xamarin.Forms/issues/1954
所以我升级到 2.5.1.52 以获取 xamarin 表单。但是在android平台上点击按钮时,我仍然看到按钮上的阴影。
我的代码更改如下:在 Style.xml
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<!-- Base theme applied no matter what API -->
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:buttonStyle">@style/NoShadowButton</item>
</style>
<style name="NoShadowButton" parent="android:style/Widget.Button">
<item name="android:stateListAnimator">@null</item>
</style>
</resources>
我什至实现了一个自定义渲染器
[assembly: ExportRenderer(typeof(FlatButton), typeof(UnanimatedButtonRenderer))]
namespace RideNow.Droid
{
public class UnanimatedButtonRenderer : ButtonRenderer
{
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
}
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (this.Control != null && this.Element != null)
{
var nativeButton = (Android.Widget.Button)Control;
nativeButton.SetShadowLayer(0, 0, 0, Android.Graphics.Color.Transparent);
}
}
}
}
}
}
其中 Flatbutton 只是一个自定义按钮,继承自 xamarin 表单的按钮,没有任何附加组件。但似乎没有任何效果
慕尼黑5688855
相关分类