【问题标题】:Styled text lost in Android IMEAndroid IME 中的样式文本丢失
【发布时间】:2014-08-29 11:52:41
【问题描述】:

我正在为 Android 开发一个 IME,其中包括使用背景颜色(使用 SpannableString)突出显示用户输入的文本。

当设备旋转并重新绘制键盘时,文本仍保留在用户输入的输入框中,但是所有样式(即背景颜色)都将丢失。

任何想法为什么会发生这种情况以及如何规避它?

【问题讨论】:

    标签: android styling ime


    【解决方案1】:

    我找到了一个不完美的解决方案,但它确实有效。

    在 IME 服务类中设置 ExtractedText 变量。 在 OnConfigurationChanged 方法中,获取提取的文本。然后在onStartInputView方法中,删除绑定编辑器中的文本,替换为提取出来的文本。

    @Override
    public void onConfigurationChanged (Configuration newConfig)
    {
        //get what's been input so far
        ExtractedTextRequest req = new ExtractedTextRequest();
        req.token = 0;
        req.flags = InputConnection.GET_TEXT_WITH_STYLES;
        extractedText = ic.getExtractedText(req, 0);
    
        super.onConfigurationChanged(newConfig);
    
    }
    
    @Override public void onStartInputView(EditorInfo attribute, boolean restarting) {
       ...
        if(extractedText!=null)
        {
            if(ic.deleteSurroundingText(9999, 0))
            {
                ic.commitText(extractedText.text, 1);
                Log.i("onStartInputView", "Text Replaced");
            }
            else
            {
                Log.i("onStartInputView", "IC not valid");
            }
        }
    
        super.onStartInputView(attribute, restarting);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-26
      • 2014-01-16
      • 1970-01-01
      • 2014-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      相关资源
      最近更新 更多