我正在尝试使用PixlUI使用Xamarin在我的Android应用中实现自定义字体。我已按照以下步骤操作:


在我的主要解决方案中添加了新的Android Java绑定库
pixlui-1-0-5.jar添加到jars文件夹
在pixlui-1-0-5.jar的属性下,我已将“ include in deploy”设置为true
测试了我的新Android Java绑定库,它构建良好,没有错误
在主项目下,我已将字体添加到asset / fonts文件夹
在引用下,我添加了pixlUI绑定库
在我的main.axml中,我放置了以下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:pixlui="http://schemas.android.com/apk/com.neopixl.pixlui"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:screenOrientation="portrait">

<com.neopixl.pixlui.components.textview.TextView
android:id="@+id/textViewpixl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
pixlui:copyandpaste="false"
pixlui:clearclipboardcontent="true"
pixlui:typeface="Lato-Light.ttf"
android:layout_below="@id/btnRebate"
 />
</RelativeLayout>



当我构建项目时,它失败并出现10个错误,所有错误均引用pixlUI文件中的错误cs0102,它们均引用“已经包含...的定义”。

例如:... / pixlUI / obj / Debug / generated / src / Com.Neopixl.Pixlui.Components.Edittext.IEditTextBatchListener.cs(59,59):错误CS0102:类型Com.Neopixl.Pixlui.Components.Edittext.AddNewCharEventArgs' already contains a definition for p0'(CS0102)(pixlUI )

我已经尝试解决此问题,但它似乎是pixlUI的问题或与我的解决方案中已有的东西冲突。有谁知道如何解决这个问题?

最佳答案

首先,应将pixelui.jar的“生成操作”更改为EmbeddedJar。

然后,需要将以下内容添加到绑定的Metadata.xml文件中:

<!-- Bindings added to rename event parameters  -->
<attr path="/api/package[@name='com.neopixl.pixlui.components.edittext']/interface[@name='EditTextBatchListener']/method[@name='addNewChar']/parameter[@name='p0']" name="name">editText</attr>
<attr path="/api/package[@name='com.neopixl.pixlui.components.edittext']/interface[@name='EditTextBatchListener']/method[@name='deleteKeyboardButton']/parameter[@name='p0']" name="name">editText</attr>
<attr path="/api/package[@name='com.neopixl.pixlui.components.edittext']/interface[@name='EditTextBatchListener']/method[@name='deleteKeyboardButton']/parameter[@name='p1']" name="name">emptyText</attr>

<attr path="/api/package[@name='com.neopixl.pixlui.components.edittext']/interface[@name='EditTextFocusListener']/method[@name='loseFocus']/parameter[@name='p0']" name="name">editText</attr>
<attr path="/api/package[@name='com.neopixl.pixlui.components.edittext']/interface[@name='EditTextFocusListener']/method[@name='requestFocus']/parameter[@name='p0']" name="name">editText</attr>


重建绑定,然后就可以在Android应用中使用它了。

这是示例项目的屏幕截图:

10-08 01:28