1

我的 Droid-Project 中有以下课程:

using MyProject.Droid;
using Xamarin.Forms.Platform.Android;

[assembly: Xamarin.Forms.ExportRenderer(typeof(Android.Widget.Button), typeof(ArrowButtonRenderer))]
namespace MyProject.Droid
{
    public class ArrowButtonRenderer : Xamarin.Forms.Platform.Android.ButtonRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
        {
            base.OnElementChanged(e);
            var btn = this.Control as Android.Widget.Button;
            btn.SetBackgroundColor(global::Android.Graphics.Color.Green);
        }
    }
}

我知道,您不需要自定义渲染器来更改按钮的颜色,但我只是想尝试一下 :)

干杯!

编辑:这是关于如何将按钮添加到 UI 的代码:

MyStackLayout.Children.Add(new Button
{
    Text = "My Button Text"
});

还有一些通过 xaml 的按钮:

<Button x:Name="btnIdk" Text="something" />
4

1 回答 1

2

经过广泛的交谈并查看了您的资源后,我发现 PCL 安装了 Xamarin.Forms 版本 2.3.1.114。

你的 Droid 项目安装了 1.5.x 版本,所以它更老了!

现在下一部分会很棘手,您需要更新适用于 Android 的 Xamarin.Forms 包。但是,如果您首先更新 Xamarin.Android.Support.* 包,则会收到一条错误消息,指出您无法更新 Xamarin.Forms,因为找不到匹配的 Forms 版本。

因为适用于 Android 的 Xamarin.Forms 在很大程度上依赖于它们链接到特定版本的支持包,但它们并不总是同步的。截至目前,Xamarin.Forms 版本 (2.3.2.127) 似乎缺少相应的 Android 支持包。所以不要升级到那个,升级到与你的 PCL 相同的版本,即 2.3.1.114。然后 Android 软件包将更新到 23.3.0,一切都会正常运行。

于 2016-09-16T11:09:01.523 回答