【问题标题】:Unexpected behavior of the Xamarin Picker when using custom renderer?使用自定义渲染器时 Xamarin Picker 的意外行为?
【发布时间】:2019-02-20 12:06:11
【问题描述】:

我需要自定义选择器的文本颜色(Title 颜色),这在 Xamarin.Forms 实现中是不可能的,所以我创建了一个简单的渲染器来满足我的需要:

using Android.Content;
using MyProj.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace MyProj.Droid.Renderers
{
    public class CustomPickerRenderer : PickerRenderer
    {
        public CustomPickerRenderer(Context context) : base(context) { }
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                Control.SetHintTextColor(((Color)Application.Current.Resources["TextColor"]).ToAndroid());
            }
        }
    }
}

但控件的样式发生了显着变化,因此它不再是响应任何项目上的点击手势的列表,而是仅响应确定/取消按钮的可滚动列表!

图片:

预期样式(使用自定义渲染器之前):

意想不到的风格(使用自定义渲染器后):

【问题讨论】:

标签: c# xamarin xamarin.forms xamarin.android custom-renderer


【解决方案1】:

您的自定义渲染器需要继承自 Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer 而不是 Xamarin.Forms.Platform.Android.PickerRenderer 才能拥有预期的风格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2021-04-04
    • 2018-07-29
    相关资源
    最近更新 更多