我一直在使用this code在运行在Android上的Xamarin.Forms中创建一个自定义选择器。
但是它在运行时在设备上失败,在调用SetPadding时使用Android5.1。
"Landroid/graphics/drawable/LayerDrawable;.setPadding:
NoSuchMethodError:无非静态方法
对于Android 6 (API 23)中似乎已经引入的内容,有什么替代办法吗?
编辑:修正了指向失败代码的链接。
发布于 2020-06-26 05:44:30
您可以创建继承自LayerDrawable的子类,重写BottomPadding、TopPadding、LeftPadding、RightPadding的getter方法,尽管它不是一个平稳的解决方案。
public class MyLayer : LayerDrawable
{
public MyLayer(Drawable[] layers):base(layers)
{
}
public override int BottomPadding
{
get
{
return 10;
}
}
public override int TopPadding
{
get
{
return 10;
}
}
public override int LeftPadding
{
get
{
return 10;
}
}
public override int RightPadding
{
get
{
return 10;
}
}
}
public MyLayer AddPickerStyles(string imagePath)
{
ShapeDrawable border = new ShapeDrawable();
border.Paint.Color = Android.Graphics.Color.Gray;
border.SetPadding(10, 10, 10, 10);
border.Paint.SetStyle(Paint.Style.Stroke);
Drawable[] layers = { border, GetDrawable(imagePath) };
MyLayer layerDrawable = new MyLayer(layers);
layerDrawable.SetLayerInset(0, 0, 0, 0, 0);
return layerDrawable;
}https://stackoverflow.com/questions/62550287
复制相似问题