为了账号安全,请及时绑定邮箱和手机立即绑定

Xamarin Forms CustomPicker 问题

Xamarin Forms CustomPicker 问题

C#
狐的传说 2022-12-04 10:37:02
我确实在 XamarinForms 上写了一个 CustomRenderer 来风格化我的选择器。但是在常规的选择器上我现在遇到了这个问题,如果我选择它们,但是点击屏幕上的任何地方,这样它们就会在不点击提示的情况下失去焦点,从而使它们无法使用。所以我不能再选择同一个选择器了,因为焦点(或点击)事件不再触发。奇怪的是,我还有一个日期和时间选择器,其内容具有相同的程式化内容,但不会发生此问题...选择器的 XAML:<CustomAndroidPicker:CustomAndroidPicker x:Name="ParkPicker" ItemDisplayBinding="{Binding Name}" Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="6" SelectedIndexChanged="ParkSelectionChanged" />这就是我在 Android 特定项目上连接我的 CustomRenderer 的代码:[assembly: ExportRenderer(typeof(CustomAndroidPicker), typeof(CustomPickerAndroid))]namespace SolarmonAndroidApp.Droid{public class CustomPickerAndroid : PickerRenderer{    public CustomPickerAndroid(Context context) : base (context)    {    }    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e)    {        base.OnElementChanged(e);        if (Control != null)        {            Control.Background = Android.App.Application.Context.GetDrawable(Resource.Drawable.CustomAndroidEntryDraw);            Control.Gravity = GravityFlags.CenterHorizontal;            Control.SetPadding(5, 10, 5, 10);        }                }}}
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

实际上有两个 PickerRendererXamarin.Forms.Platform.Android.AppCompat.PickerRenderer和基本Xamarin.Forms.Platform.Android的,基本的有这个问题你实际需要做的是这样的:


namespace SolarmonAndroidApp.Droid

{

[assembly: ExportRenderer(typeof(CustomAndroidPicker), typeof(CustomPickerAndroid))]

 public class CustomPickerAndroid : Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer

 {

    public CustomPickerAndroid(Context context) : base(context)

    {


    }

    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Picker> e)

    {

        base.OnElementChanged(e);

        if (Control != null)

        {

            Control.Background = Android.App.Application.Context.GetDrawable(Resource.Drawable.CustomAndroidEntryDraw);

            Control.Gravity = GravityFlags.CenterHorizontal;

            Control.SetPadding(5, 10, 5, 10);

        }

    }

}


查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 227 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号