gpt4 book ai didi

android - Android 上带有彩色边框的 Xamarin Forms Entry

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:09 26 4
gpt4 key购买 nike

我为我的应用制作了一个自定义呈现的条目,当时只是向文本添加了填充。我还希望边框颜色始终为蓝色,即使用户将注意力集中在条目上也是如此。我的 Android 自定义条目中有这段代码(取自 here ,但它不起作用,它只是添加了一个蓝色背景):

protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);

if (Control != null)
{
var view = (BlueBorderEntry)Element;
GradientDrawable gd = new GradientDrawable();

//Below line is useful to give border color
gd.SetColor(global::Android.Graphics.Color.Rgb(45, 192, 232));


this.Control.SetBackgroundDrawable(gd);
this.Control.SetPadding(40, 40, 40, 40);


this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions);
}
}

我探索了可以设置边框颜色的方法并发现:

this.Control.SetCompoundDrawables();

它被描述为:

Sets the drawables to appear to the left, above, right and below the text.

然而,在传入一个蓝色的 Drawable 之后,它对我的​​输入完全没有任何影响。

我似乎无法弄清楚如何让边框变成蓝色,如果有人可以帮助我吗?

编辑:我需要边框位于条目的底部并且大约 5 像素厚。

最佳答案

您可以在没有渲染器的情况下,使用框架并将条目放入框架内,并为框架设置边框颜色。这是简单的方法。

或者你可以修改你的渲染器:

public class CustomEntryRenderer : EntryRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
var nativeEditText = (global::Android.Widget.EditText)Control;
var shape = new ShapeDrawable(new Android.Graphics.Drawables.Shapes.RectShape());
shape.Paint.Color = Xamarin.Forms.Color.Red.ToAndroid();
shape.Paint.SetStyle(Paint.Style.Stroke);
nativeEditText.Background = shape;
}
}
}

关于android - Android 上带有彩色边框的 Xamarin Forms Entry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com