我正在开发简单的android编辑器应用程序。因为我使用了对齐跨度。如果我将对齐方式正常(左)更改为相反(右)或中心,则光标无法正确渲染。
设备:Nexus 设备。 API 级别:23
此问题仅出现在包含 API LEVEL 23 的 Nexus 设备上。API LEVEL 低于 23 的 Nexus 设备工作正常。所有 API LEVEL 的三星设备工作正常。
本期的场景是。
在我的应用程序中,编辑器屏幕有带有三个按钮的编辑文本(左对齐、居中对齐、右对齐)。最初我设置了左对齐。如果我将对齐方式 Left(Normal) 更改为 center 则光标未正确绘制.光标在左侧位置保持不变。但内容更改为居中。预期的行为是内容和光标都移动到居中位置。
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);
}
}
});
解决此问题的任何建议。
你能解决这个问题吗?我也有同样的问题,但是还没解决。