21

EditText在 Android 4.0 中有一个输入,但光标没有显示在其中。

什么可以让光标不出现在输入栏?

4

11 回答 11

60

Make android:cursorVisible="true"

and

If you have used android:textColor then set the android:textCursorDrawable attribute to @null.

Happy coding ;)

于 2013-09-25T07:12:10.680 回答
9

我有一个类似的问题,但这是因为光标实际上是白色的,我有一个白色的背景。我需要能够以某种方式在代码中将光标更改为黑色并使用这种方法。

我创建了一个名为 textbox.axml 的布局资源,其中包含这个

   <?xml version="1.0" encoding="utf-8"?>
   <EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="This is a template"
    android:background="#ffffff"
    android:textColor="#000000"
    android:cursorVisible="true"
    android:textCursorDrawable="@null" />

然后我在代码中应用了这个布局(C#,因为我使用的是 Xamarin)因此

    EditText txtCompletionDate = (EditText)LayoutInflater.Inflate(Resource.Layout.textbox, null);

但它在Java中是相似的。

于 2014-05-01T23:57:25.673 回答
5

在 xml 文件中为您的编辑文本添加这一行。

android:textCursorDrawable="@null"
于 2016-07-18T06:40:40.633 回答
4

我遇到了同样的问题——光标只有在用户输入一些字符后才会出现。我尝试了此处列出的解决方案,但在我的设备上没有任何成功。实际上对我有用的是为我的edittext设置空白文本:

EditText editText = findViewById(R.id.edit_text);
editText.setText("");

这会“伪造”用户输入,并出现光标。

于 2015-01-16T09:49:54.493 回答
4

我的问题是我使用的是 AppCompat 主题,但是我有一些扩展 EditText 的自定义视图类,需要扩展 AppCompatEditText 才能正确应用 AppCompat 样式。

于 2015-07-17T22:29:15.300 回答
1

在 xml 文件中为您的编辑文本添加这一行。

android:cursorVisible="true"
于 2013-02-26T16:15:02.753 回答
1

只需将我自己的个人修复添加给任何可能有帮助的人。我在这里尝试了一切,但强制android:background="@null"只在我右对齐的末尾导致一个非常小的光标TextEdit(它在其他地方工作正常)。

只需添加android:padding="1dp"TextEdit就解决了这个问题。

于 2017-03-22T00:53:55.137 回答
0

我找到了导致它发生在我身上的原因。

您需要从应用程序的主题继承它。我不确定该行项目究竟需要什么,但android:Theme它的继承性足以做到这一点。

使用默认值AppBaseTheme将起作用(它具有android:Theme.Light父级)。

在清单中使用AppBaseThemeput into your application 标记。android:theme="@style/AppBaseTheme"您也可以使用自定义样式和多级继承,只要其中一个parent="android:Theme"在样式标签中。就像我说的那样,可能没有它,只使用某些行项目,但我不知道那些会是什么。

如果您不需要自定义主题,您可以使用

android:theme="@android:style/Theme"

于 2013-08-27T18:06:37.517 回答
0

如果 EditText 有一个带边框的背景可绘制对象,则光标显示在边框中并且看起来是不可见的。纠正问题,将 EditText 中的填充设置为少量,例如 5dp

于 2019-07-28T08:24:49.197 回答
0

在我的情况下,如果用户语言是英语,则光标可见,但如果他将语言更改为阿拉伯语,则光标不可见。

为了解决这个问题,我为光标创建了自定义可绘制对象。

可绘制/black_cursor.xml 中的光标形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="#a8a8a8"/><!-- This is the exact color of android edit text Hint -->
    <size android:width="1dp" />
</shape>

编辑文字:

<EditText
    android:id="@+id/user_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:textCursorDrawable="@drawable/black_cursor"
    />
于 2016-02-17T11:39:04.640 回答
0

如上所述,这是实际的行
android:textCursorDrawable="@null"

 <EditText
               android:textCursorDrawable="@null"
                android:imeOptions="actionNext"
                android:id="@+id/edSMobile"
                 android:layout_width="match_parent"
                android:layout_height="wrap_content"                    
                android:background="@drawable/edit_corner"                    
                android:inputType="phone" />
于 2017-11-23T09:54:24.403 回答