Подтвердить что ты не робот

Курсор EditText невидим в Android 4.0

У меня есть ввод EditText в Android 4.0, и курсор не отображается внутри него.

Что может заставить курсор не появляться в поле ввода?

4b9b3361

Ответ 1

Сделайте android:cursorVisible="true"

и

Если вы использовали android:textColor, установите для атрибута android:textCursorDrawable значение @null.

Счастливое кодирование;)

Ответ 2

У меня была аналогичная проблема, но это было потому, что курсор на самом деле белый, и у меня был белый фон. Мне нужно было как-то изменить курсор на черный в коде и использовать этот подход.

Я создал ресурс компоновки с именем 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" />

Затем я применил этот макет в коде (С#, потому что я использую Xamarin), таким образом

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

но он похож на Java.

Ответ 3

У меня была такая же проблема - курсор показывался только после того, как пользователь набрал несколько символов. Я пробовал решения, перечисленные здесь, но без каких-либо успехов на моем устройстве. Что на самом деле работает для меня, задает пустой текст для моего edittext:

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

Это "подделывает" пользовательский ввод, и появляется курсор.

Ответ 4

Моя проблема заключалась в том, что я использовал тему AppCompat, но у меня были некоторые пользовательские классы классов, которые расширили EditText, которые должны были расширить AppCompatEditText, чтобы стиль AppCompat был применен правильно.

Ответ 5

Добавьте эту строку для текста редактирования в XML файл.

android:textCursorDrawable="@null"

Ответ 6

Добавьте эту строку для текста редактирования в XML файл.

android:cursorVisible="true"

Ответ 7

Просто добавление моего личного исправления для любого, кому это может помочь. Я пробовал все здесь, но форсирование android:background="@null" вызывало очень крошечный курсор только в конце моего выравнивания по правому краю TextEdit (это правильно работало в другом месте).

Просто добавив android:padding="1dp" в мой TextEdit решение проблемы.

Ответ 8

Я нашел то, что вызывало это со мной.

Вам нужно наследовать его из темы приложения. Я не уверен, что позиция должна быть точно, но android:Theme имеет ее так наследует, что сделает этот трюк.

Использование по умолчанию AppBaseTheme будет работать (у него есть android:Theme.Light как он родительский).

Чтобы использовать AppBaseTheme, поместите android:theme="@style/AppBaseTheme" в свой тег приложения в манифесте. Вы также можете использовать собственный стиль и несколько уровней наследования, если один из них имеет parent="android:Theme" в теге style.Like, я сказал, что возможно иметь его без этого, просто используя определенные позиции, но я не знаю, что это будет.

Если вам не нужна специальная тема, вы можете просто использовать

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

Ответ 9

В моем случае курсор отображается, если язык пользователя является английским, но если он изменит свой язык на арабский, то его не видно.

Чтобы исправить это, я создал на пользовательском drawable для курсора.

Cursur shap at drawable/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"
    />

Ответ 10

Как упоминалось выше, здесь фактическая строка 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" />

Ответ 11

Если в EditText имеется фон, который можно нарисовать с рамкой, курсор отображается на границе и кажется невидимым. Чтобы исправить проблему, установите отступ в EditText на небольшое количество, например 5 диоптрий