我的Android应用程序的EditText
中的文本光标遇到了一些奇怪的行为。从本质上讲,光标并不总能准确地表示它在单词中的位置(它遍布整个地方)。因此,在编辑文本中键入字符可能会导致字符放置在不同的位置(通常在光标指示位置之前或之后)。此外,当光标放在单词的内部或旁边时,该单词通常会稍微偏移。
这是一个现象的例子;
注意单词在图片之间移动位置,在第二个示例中,光标表示它在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手机上测试了这个问题,这也没有问题,这引出了它是否与屏幕尺寸有关的问题。在同一设备上的其他应用程序没有这个问题。
非常感谢任何帮助。这已经困扰了我一段时间了。我愿意为任何可以帮助解决/解释的人手动奖励。
答案 0 :(得分:0)
我花了很多时间尝试各种比特''''来解决这个问题,但是最后修改它的更改是添加一个(以前不存在的)uses-sdk
元素,它的属性是Android Manifest 。
<uses-sdk android:minSdkVersion="1" android:targetSdkVersion="4" />
这些是可以在不引发问题的情况下声明的最低值。