如何使用对齐范围

时间:2016-01-07 09:17:11

标签: android android-layout android-activity

我正在研究简单的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 issueThis 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);

                }
            }

        });

解决此问题的任何建议。

0 个答案:

没有答案