Xamarin表单 - iOS中的Google SignInButton缺少标签

时间:2015-10-29 18:13:22

标签: ios xamarin xamarin.forms

我正在我的应用中实施Google身份验证。我已经在登录过程中工作,但由于某种原因Google按钮无法正常渲染。缺少文字和图标。

以下是iOS的自定义渲染器代码:

using System;
using Google.SignIn;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using APP.iOS.Renderers;
using APP.View.Session;
using UIKit;

[assembly: ExportRenderer (typeof(GoogleLoginButton), typeof(GoogleLoginButtonRenderer))]
namespace APP.iOS.Renderers
{
    public class GoogleLoginButtonRenderer : ViewRenderer<Button, SignInButton>
    {
        protected override void OnElementChanged (ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged (e);

            var loginButton = new SignInButton ();
            if (e.NewElement != null)
                SetNativeControl (loginButton);
        }
    }
}

和我的PCL占位符文件:

using System;
using Xamarin.Forms;

namespace APP.View.Session
{
    /// <summary>
    /// Empty Implementation of GoogleLoginButton, will be implemented in Platform libraries.
    /// </summary>
    public class GoogleLoginButton : Xamarin.Forms.View
    {
        public GoogleLoginButton ()
        {
        }
    }
}    

以下是下面的输出。您可以看到Facebook按钮呈现正常,但由于某种原因,Google按钮没有。他们使用相同的渲染器但是类型不同。

Here's the output

我尝试过从Xamarin.Forms.View继承而不是.Button,但它没有效果。也没有改变色调。据我所知,渲染逻辑的某些组件与Xamarin Forms不兼容,但我不认为源代码可以深入挖掘。

我正在继续滚动我自己的按钮并直接调用SignInUser()方法,但我很好奇是否有任何快速解决方法。

版本和内容:

  • Xamarin.Forms 1.5.1.6471
  • Xamarin.Google.iOS.SignIn 2.3.1.0-beta3
  • Xamarin.Google.iOS.Core 1.1.0.0-beta3
  • Xamarin Studio 5.9.8
  • Xamarin iOS 9.1.0.27

0 个答案:

没有答案