【问题标题】:How to remove the bottom line of datepicker in android using xamarin.forms如何使用 xamarin.forms 在 android 中删除 datepicker 的底线
【发布时间】:2019-01-11 22:36:07
【问题描述】:

我在我的 xamarin.forms 应用程序中使用 DatePicker 控件,它显示了 android 设备中日期选择器的底线,但我不想要那条线。我怎样才能删除那条线??

我尝试使用一些自定义渲染来删除该行,但它不起作用。我尝试应用的渲染器是:

public class BorderlessDatePickerRenderer:DatePickerRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
    {
        base.OnElementChanged(e);
        if (e.OldElement == null)
        {
            Control.Background = null;

            var layoutParams = new MarginLayoutParams(Control.LayoutParameters);
            layoutParams.SetMargins(0, 0, 0, 0);
            LayoutParameters = layoutParams;
            Control.LayoutParameters = layoutParams;
            Control.SetPadding(0, 0, 0, 0);
            SetPadding(0, 0, 0, 0);
        }
    }
}

谁能帮帮我。

谢谢。

【问题讨论】:

    标签: xamarin.forms react-native-android


    【解决方案1】:

    您可以将背景设置为空,它应该可以工作:

      Control.SetBackgroundResource(0);
    

    更新:

    如有疑问请随时回复

        [assembly: ExportRenderer(typeof(BorderlessDatePicker), typeof(BorderlessDatePickerRenderer))]
    public class BorderlessDatePickerRenderer : DatePickerRenderer
    {
        public static void Init() { }
        protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
        {
            base.OnElementChanged(e);
            if (e.OldElement == null)
            {
                Control.Background = null;
    
                var layoutParams = new MarginLayoutParams(Control.LayoutParameters);
                layoutParams.SetMargins(0, 0, 0, 0);
                LayoutParameters = layoutParams;
                GradientDrawable gd = new GradientDrawable();
                gd.SetStroke(0, Android.Graphics.Color.LightGray);
                Control.SetBackgroundDrawable(gd);
                Control.LayoutParameters = layoutParams;
                Control.SetPadding(0, 0, 0, 0);
                SetPadding(0, 0, 0, 0);
            }
        }
    }
    

    【讨论】:

    • ,感谢您的回复。但是这个属性对我没有任何影响。
    【解决方案2】:

    您可以在 OnElementChanged 中使用透明渐变

    var gd = new GradientDrawable();
    gd.SetStroke(0, Android.Graphics.Color.Transparent);
    Control.SetBackground(gd);
    

    【讨论】:

      猜你喜欢
      • 2018-12-01
      • 2021-08-08
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2020-12-15
      • 2016-06-01
      相关资源
      最近更新 更多