EditText光标定位不准确

时间:2014-04-02 14:48:06

标签: android debugging android-edittext android-screen-support

我的Android应用程序的EditText中的文本光标遇到了一些奇怪的行为。从本质上讲,光标并不总能准确地表示它在单词中的位置(它遍布整个地方)。因此,在编辑文本中键入字符可能会导致字符放置在不同的位置(通常在光标指示位置之前或之后)。此外,当光标放在单词的内部或旁边时,该单词通常会稍微偏移。

这是一个现象的例子;

enter image description here

注意单词在图片之间移动位置,在第二个示例中,光标表示它在i之前,但实际上在e两个索引之前。

以下是XML中此EditText的{​​{1}}元素;

View

正如您所看到的,它位于<EditText android:id="@+id/hazard_obs_text" android:layout_width="0dp" android:layout_height="0dp" android:layout_below="@+id/hazard_observation" android:layout_alignLeft="@+id/hazard_observation" android:layout_alignRight="@+id/hazard_observation" android:layout_above="@+id/finalise_hazard" android:layout_marginTop="5dp" android:background="@drawable/whitebackselector" android:hint="Recommendation Text" android:textSize="9sp" android:gravity="start" android:paddingLeft="5dp" android:enabled="false" /> 内,并且具有自定义的空白背景,边缘周围有一些微妙的阴影。它也是RelativeLayout布局的一部分。就我所见,没有什么不寻常的。没有异常或错误被抛出。我很难过。有没有人有什么想法会导致这种奇怪的行为?

按要求提供额外详情;

布局不会以任何方式以编程方式更改,除非最初被充气(毕竟它在片段中)。以下是以编程方式与上述示例Fragment -

进行交互的任何代码行
EditText

下面是完整的片段布局。值得注意的是,我在一个非常简单的LinearLayout中也遇到了同样的问题 -

obsText = (EditText) fragmentView.findViewById(R.id.hazard_obs_text);
...
obsText.setEnabled(tf); // Where tf is a boolean value.
...
obsText.getText().clear();
...   
obsText.setText(observations[0].split(" ­ ", 3)[1]); // Where observations[0] is a string.
...
obsText.setText(currentAssessment.obsDescript); // Setting another string.

我在Nexus 10,Galaxy Note 10.1和&amp ;;上遇到了这个问题。 Xperia Z2平板电脑安装了最新版Android。我也在一台旧的Xperia手机上测试了这个问题,这也没有问题,这引出了它是否与屏幕尺寸有关的问题。在同一设备上的其他应用程序没有这个问题。

非常感谢任何帮助。这已经困扰了我一段时间了。我愿意为任何可以帮助解决/解释的人手动奖励。

1 个答案:

答案 0 :(得分:0)

我花了很多时间尝试各种比特''''来解决这个问题,但是最后修改它的更改是添加一个(以前不存在的)uses-sdk元素,它的属性是Android Manifest 。

<uses-sdk android:minSdkVersion="1" android:targetSdkVersion="4" />

这些是可以在不引发问题的情况下声明的最低值。