gpt4 book ai didi

android - Xamarin:确定 GetSpans() 中的元素是粗体还是斜体?

转载 作者:行者123 更新时间:2023-11-29 15:42:36 24 4
gpt4 key购买 nike

原生 Android Spanned.getSpans(......,SyleSpan.class)函数返回类型 StyleSpan[]

Xamarin ISpanned.GetSpans(......)函数返回类型 Java.lang.Object[]虽然它返回 <T> (在 native android 中为 T = StyleSpan)。因此会丢失信息,因为如果我使用 native SDK,Mono 接口(interface)不会公开它会公开的内容。

自属性Style (getStyle() 在 native android 中)仅在 StyleSpan 中可用无法读取通过 G​​etSpans 读取的给定 StyleSpan 是粗体还是斜体。

关于如何确定粗体斜体有什么想法吗?

这是单声道界面的限制吗?

最佳答案

你无所不能。 ;) GetSpans 方法没有合适的通用包装器。

ISpanned ss = ...;
var spans = ss.GetSpans(0, 20, Class.FromType(typeof(SyleSpan)));
foreach (SyleSpan span in spans)
{
// do what you want
if(span.Style == TypefaceStyle.Bold)
{
Debug.WriteLine("Xamarin can find bold spans, too :)");
}
}

如果你想访问它:

public static class ISpannedExtension
{
public static TSpan[] GetSpans<TSpan>(this ISpanned ss, int startIndex, int length)
{
return ss.GetSpans(startIndex, length, Class.FromType(typeof(TSpan)))
.Cast<TSpan>()
.ToArray();
}
}

// usage
ISpanned ss = ...;
var spans = ss.GetSpans<SyleSpan>(0, 20);

关于android - Xamarin:确定 GetSpans() 中的元素是粗体还是斜体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079662/

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