当前位置: 首页 > 知识库问答 >
问题:

为什么我的自定义ButtonRenderer不工作?

邢宏浚
2023-03-14

我正在尝试为Xamarin.Forms创建一个自定义的ButtonRenderer。下面是一个简单的测试,我一直在尝试根据一些教程组合起来,但我似乎可以使它工作。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="TestProject.MainPage">
    <ContentPage.Content>
        <Button VerticalOptions="Center" HorizontalOptions="Center"></Button>
    </ContentPage.Content>
</ContentPage>
[assembly: ExportRenderer(typeof(Xamarin.Forms.Button), typeof(CustomButtonRenderer))]
namespace TestProject.Droid.CustomRenderers
{
    public class CustomButtonRenderer: ButtonRenderer
    {
        public CustomButtonRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
        {
            base.OnElementChanged(e);
            Control.SetBackgroundColor(Android.Graphics.Color.Red);
        }
    }
}
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Java.Lang.ClassNotFoundException: Didn't find class "md5dba8ede99752acada1f5ba384c7cf839.CustomButtonRenderer" on path: DexPathList[[zip file "/data/app/com.companyname.TestProject-1/base.apk"],nativeLibraryDirectories=[/data/app/com.companyname.GN.Mobile.TestProject-1/lib/arm, /data/app/com.companyname.GN.Mobile.TestProject-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]

共有1个答案

平学
2023-03-14

我还在调查这件事。您的类会缩小,因为它没有在您的PCL中静态链接。您可以通过给类起一个名字来避免这种情况:

[Activity(Name = "somepackage.custombuttonrenderer")]
public class CustomButtonRenderer: ButtonRenderer
{ }

如果您能够将最低Android版本定位到Android5.0(API21),那么当使用另一个版本的Dex文件时,这个问题就会消失。

 类似资料:
  • 我已经为我的自定义日志拦截器执行了以下操作 我正在将拦截器设置为restTemboard 记录器正在将响应正确地打印到控制台,但最后响应会以空的形式返回给调用者。我无法调试和解决它。 我已经弄明白了StreamUtils。copyToString(response.getBody(),字符集。defaultCharset())正在读取一次输入流,并且不再在其中保存响应正文(现在为空) 还有谁也面临

  • 问题内容: 我找到了一个网站,该网站提供了将自定义标签添加到html的指南,就像人们制作新的HTML5标签一样。我必须承认,我认为添加我自己的标签,“扫描”代码并查找所需内容会更好。但是我发现的每个网站,人们都说这不好。…但是为什么不好呢? 带有类的示例html: 在这里,我可以使用自定义标签进行操作,我认为这很容易找到解决方法,所以为什么不这样做: 问题答案: 自定义标签不是邪恶的 请考虑一下:

  • 有人能找出为什么我的不能工作。也许我错过了什么。我意识到这可能是愚蠢的没有任何更多的上下文比我所展示的,但请您询问,我将很乐意提供更多。 这是一段很大的代码,所以我不知道如何用它生成SSCE。您正在查看的是子类的构造函数,它包含3个面板。此时,只是一个。方法打开一个filechooser,然后加载选定的图像,该图像被绘制到上。图像显示良好,一切正常,除了我调整窗口大小时,没有滚动条。

  • 我正在编写一个Spring Boot(批处理)应用程序,它应该用一个特定的退出代码退出。一个要求是在数据库无法连接时返回退出代码。 我的方法是通过显式创建bean、调用并捕获和抛出实现的自定义异常来尽早处理此异常。配置如下: 我希望尽可能多地重用Spring Boot自动配置,这就是为什么我使用。我不知道这是不是应该走的路。 对的调用返回配置的url(从我的属性文件中): 但为什么Spring B

  • @IsaAccisneros创建了新的SpinnerItem和MySpinnerAdapter类。我完全执行了他的新类。我的实现如下所示: 而他的长相是这样的: 那为什么我的行为怪异呢?我的代码的上下文是我的AddItemFragment在我的activity中的onCreateView。我说错了什么?谢谢! 编辑:已请求适配器类代码...