如何解决android Edittext光标位置问题与对齐跨度

问题描述 投票:0回答:1

我正在开发简单的android编辑器应用程序。因为我使用了对齐跨度。如果我将对齐方式正常(左)更改为相反(右)中心,则光标无法正确渲染。

设备:Nexus 设备。 API 级别:23

此问题仅出现在包含 API LEVEL 23 的 Nexus 设备上。API LEVEL 低于 23 的 Nexus 设备工作正常。所有 API LEVEL 的三星设备工作正常。

本期的场景是。

在我的应用程序中,编辑器屏幕有带有三个按钮的编辑文本(左对齐、居中对齐、右对齐)。最初我设置了左对齐。如果我将对齐方式 Left(Normal) 更改为 center 则光标未正确绘制.光标在左侧位置保持不变。但内容更改为居中。预期的行为是内容和光标都移动到居中位置。

我附上图片供您参考。 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);

                }
            }

        });

解决此问题的任何建议。

android android-layout android-activity
1个回答
0
投票

你能解决这个问题吗?我也有同样的问题,但是还没解决。

© www.soinside.com 2019 - 2024. All rights reserved.