Android 在横向模式下,SpannableString未正确显示

Android 在横向模式下,SpannableString未正确显示,android,android-layout,spannable,Android,Android Layout,Spannable,我有一段代码,它使用SpannableString将一些图像添加到EditText中,如下所示: SpannableString ss = new SpannableString("Some random String in my application."); Drawable d = getResources().getDrawable(R.drawable.emoticon_0001); ImageSpan span = new ImageSpan(d, ImageSp

我有一段代码,它使用SpannableString将一些图像添加到EditText中,如下所示:

SpannableString ss = new SpannableString("Some random String in my application.");
Drawable d = getResources().getDrawable(R.drawable.emoticon_0001);
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);
ss.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
中间有一些指数计算,我没有包括在内,因为它们并不重要。代码运行良好。以下是它的一些图像:

非编辑模式下的纵向和横向:

但是,一旦我开始在横向模式下编辑,图像后面的文本就会出现:

大多数人都知道,奇怪的字符串代表iPhone中表情符号的Unicode。 以前有人遇到过这个问题吗


编辑:使用android:imeOptions=“actionDone | flagNoExtractUi”测试,不起作用,word建议会掩盖我的编辑文本。

我建议您在显示编辑键盘之前,将可扩展字符串中的HTML代码转换为纯UNICODE字符串。如果支持UNICODE格式的表情符号,则应在编辑时显示。编辑完成后,将其转换回HTML


我还没有看到这一点,但我已经用键盘做了足够多的工作,可以很好地猜测发生了什么。当显示ExtractView时(ExtractView是键盘上方横向编辑的一部分,它实际上是由Android框架绘制的,并且是键盘POV中应用程序的一部分),看起来您正在丢失图像跨度,而只是将纯文本放在那里。你为什么以及如何解决这个问题我现在还没有好主意。在其他应用程序中也会发生这种情况吗?比如说短信应用?在肖像中编辑怎么样?谢谢你提供的信息,我已经用著名的消息应用Whatsapp进行了测试。它在这些表情符号上显示一个空白。这是有意义的,因为这些字符表示Unicode,如果它们找不到附加到代码的正确符号,那么Unicode将是空白。就像将表情符号从iPhone短信发送到Android设备一样,也会显示空白。@Gabeschen抱歉,没有回答您的问题,在肖像模式下编辑也可以。这个问题只发生在横向编辑上,Whatsapp也是如此。听起来你在提取模式下肯定会失去跨度。但是,如果Whatsapp也只是在提取模式下丢失图像,那听起来像是一个框架错误,而不是你正在做的事情。@Gabetechan是的,但只是检查是否有人对此有解决方案或解决方法。嗯,它们也不完美,所以如果我能解决一些他们还没有解决的问题,那就太好了。现在不太确定Android是否支持这些表情符号的unicode,在我问这个问题的时候,表情符号unicode在iPhone上是唯一“合法”的。比如说,如果你从iphone向android发送短信,里面有表情符号,android什么也看不见。。