我正在研究简单的android编辑器应用程序。我已经使用了Alignment Span。如果我将Alignment Normal(LEFT)更改为 Opposite(RIGHT)或中心光标无法正确渲染。
设备:Nexus设备。 API等级:23
此问题仅适用于包含API LEVEL 23的Nexus设备.API LEVEL低于23的Nexus设备工作正常。所有API LEVEL工作正常的.Samsung设备。
此问题的情景是。
在我的应用程序中,编辑器屏幕有三个按钮(对齐左,中,右)。最初我设置了左对齐。如果我将对齐左(正常)更改为中心光标未正确绘制。光标在左侧位置保持相同。但内容更改为居中。预期的行为是内容和光标移动到中心位置。
我附上图片供您参考。 This image contains the issue , This image contains The exact behavior what I want. 这是我的示例代码:
mCenterAlignmentButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Editable s = mEditText.getText();
//Getting Left Alignment
AlignmentSpan[] alignmentSpans = s.getSpans(
mEditText.getSelectionStart(), mEditText.getSelectionEnd(),
AlignmentSpan.class);
for (AlignmentSpan alignSpan : alignmentSpans) {
int spanStart = s.getSpanStart(alignSpan);
int spanEnd = s.getSpanEnd(alignSpan);
s.removeSpan(alignSpan); //Removed left Alignment
//set Center Alignment
s.setSpan(
new AlignmentSpan.Standard(Alignment.ALIGN_CENTER),
spanStart, spanEnd, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
}
}
});
解决此问题的任何建议。