TailTruncation - 在Xamarin Forms中省略拾取器控件的文本

时间:2016-07-20 08:51:59

标签: xamarin xamarin.android xamarin.forms picker

是否可以在选取器控件中使用省略号截断长文本。我已经创建了一个自定义渲染器来设置fontsize而没有边框,以便获得以下结果。

enter image description here

还尝试设置Control.Ellipsize = TextUtils.TruncateAt.End;但没有任何反应

[assembly: ExportRenderer(typeof(NoBorderPicker), typeof(CustomPicker))]
namespace Prj.Droid.Renderers
{
    public class CustomPicker : PickerRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {

                var customBG = new GradientDrawable();
                customBG.SetColor(Android.Graphics.Color.Transparent);
                customBG.SetCornerRadius(3);
                Control.SetBackground(customBG);

                Control.Ellipsize = TextUtils.TruncateAt.End;

                var custdatepicker = (NoBorderPicker) this.Element;
                this.Control.TextSize = (float)custdatepicker.FontSize;

            }
        }
    }
}

2 个答案:

答案 0 :(得分:5)

现在,我确信Control.SetSingleLine(true);可以正常工作。

答案 1 :(得分:1)

如果您使用的是自定义渲染器,则可以进行不正确的继承。

使用 Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer 而不是 Xamarin.Forms.Platform.Android.PickerRenderer

https://www.damirscorner.com/blog/posts/20201204-CustomPickerRendererOnAndroid.html