У меня есть ввод EditText
в Android 4.0, и курсор не отображается внутри него.
Что может заставить курсор не появляться в поле ввода?
У меня есть ввод EditText
в Android 4.0, и курсор не отображается внутри него.
Что может заставить курсор не появляться в поле ввода?
Сделайте android:cursorVisible="true"
и
Если вы использовали android:textColor
, установите для атрибута android:textCursorDrawable
значение @null
.
Счастливое кодирование;)
У меня была аналогичная проблема, но это было потому, что курсор на самом деле белый, и у меня был белый фон. Мне нужно было как-то изменить курсор на черный в коде и использовать этот подход.
Я создал ресурс компоновки с именем 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.
У меня была такая же проблема - курсор показывался только после того, как пользователь набрал несколько символов. Я пробовал решения, перечисленные здесь, но без каких-либо успехов на моем устройстве. Что на самом деле работает для меня, задает пустой текст для моего edittext:
EditText editText = findViewById(R.id.edit_text);
editText.setText("");
Это "подделывает" пользовательский ввод, и появляется курсор.
Моя проблема заключалась в том, что я использовал тему AppCompat, но у меня были некоторые пользовательские классы классов, которые расширили EditText, которые должны были расширить AppCompatEditText, чтобы стиль AppCompat был применен правильно.
Добавьте эту строку для текста редактирования в XML файл.
android:textCursorDrawable="@null"
Добавьте эту строку для текста редактирования в XML файл.
android:cursorVisible="true"
Просто добавление моего личного исправления для любого, кому это может помочь. Я пробовал все здесь, но форсирование android:background="@null"
вызывало очень крошечный курсор только в конце моего выравнивания по правому краю TextEdit
(это правильно работало в другом месте).
Просто добавив android:padding="1dp"
в мой TextEdit
решение проблемы.
Я нашел то, что вызывало это со мной.
Вам нужно наследовать его из темы приложения. Я не уверен, что позиция должна быть точно, но android:Theme
имеет ее так наследует, что сделает этот трюк.
Использование по умолчанию AppBaseTheme
будет работать (у него есть android:Theme.Light
как он родительский).
Чтобы использовать AppBaseTheme
, поместите android:theme="@style/AppBaseTheme"
в свой тег приложения в манифесте. Вы также можете использовать собственный стиль и несколько уровней наследования, если один из них имеет parent="android:Theme"
в теге style.Like, я сказал, что возможно иметь его без этого, просто используя определенные позиции, но я не знаю, что это будет.
Если вам не нужна специальная тема, вы можете просто использовать
android:theme="@android:style/Theme"
В моем случае курсор отображается, если язык пользователя является английским, но если он изменит свой язык на арабский, то его не видно.
Чтобы исправить это, я создал на пользовательском 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"
/>
Как упоминалось выше, здесь фактическая строка 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" />
Если в EditText имеется фон, который можно нарисовать с рамкой, курсор отображается на границе и кажется невидимым. Чтобы исправить проблему, установите отступ в EditText на небольшое количество, например 5 диоптрий