gpt4 book ai didi

android - Xamarin.Forms:从 Iconize 创建一个圆形/圆形按钮

转载 作者:行者123 更新时间:2023-11-29 02:32:40 25 4
gpt4 key购买 nike

我尝试创建一个可以显示字体图标Rounded/Circle Button。因为我已经使用了 Iconize在我的项目中,我尝试从现有的 IconButton 创建 Rounded/Circle Button。

我首先尝试了这个,通过将 BorderRadiusas 固定为 HeightRequest/WidthRequest 的一半值:

<iconize:IconButton HeightRequest="40" WidthRequest="40" 
BorderRadius="20"
Text="fa-500px" TextColor="Red" FontSize="20"
BackgroundColor="Orange" BorderColor="Red"
BorderWidth="2"
VerticalOptions="Start" HorizontalOptions="Center">
</iconize:IconButton>

默认渲染在 UWP 上按预期工作,但“单击”渲染效果不佳,因为出现了一个矩形。但是在 Android 上,按钮始终处于“默认”模式:没有边框,没有背景,...

所以我为 Android 添加了一个 FlatButton 控件和一个 Renderer:

public class FlatButton : IconButton
{
}

[assembly: ExportRenderer(typeof(FlatButton), typeof(FlatButtonRenderer))]
namespace Iconize.Sample.Droid.Renderers
{
public class FlatButtonRenderer : ButtonRenderer
{
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
}

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

我是这样使用它的:

<controls:FlatButton HeightRequest="40" WidthRequest="40" 
BorderRadius="20"
Text="fa-500px" TextColor="Red" FontSize="20"
BackgroundColor="Orange" BorderColor="Red"
BorderWidth="2"
VerticalOptions="Start" HorizontalOptions="Center">
</controls:FlatButton>

这一次,圆形渲染在 Android 上没问题,但我失去了字体图标的“显示”。

截图如下:

screeshot

有没有办法保持圆形渲染器和图标显示?第二次,有没有办法解决单击按钮时 UWP 上的渲染问题?

我也看了其他插件:

  • Flexbutton : 似乎工作正常,但没有 UWP 支持
  • ButtonCirclePlugin : 我无法在我的解决方案中使用它,而且我无法构建提供的示例...

您还有其他建议吗?

最佳答案

我终于找到了一个临时解决方案,通过像这样重新定义 Iconize IconButtonRenderer:

  • CircleIconButton : 我创建了一个继承自 IconButton
  • 的控件
  • CircleIconButtonRenderer :我已经为 Android 复制了 IconButtonRenderer。我不得不删除第一个调试测试,以及构造函数的预期新格式:public CircleIconButtonRenderer(Context context) : base(context)。所以这个类显示为“过时”。
  • MainPage : 我已经在页面中实现了新控件,就像我们为 IconButton 所做的那样。

但可能有更好的方法,因为预期的构造函数没有实现......

关于android - Xamarin.Forms:从 Iconize 创建一个圆形/圆形按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48763002/

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