Я пытаюсь отобразить курсор в EditText, добавив

 android:cursorVisible="true"

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

Итак, вопрос в том, как сделать курсор видимым?

Например, вот мой XML-файл пользовательского оповещения, и даже здесь курсор не отображается.

<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    android:background="#ffffff"
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="2dp"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:text="Site:"
        tools:ignore="HardcodedText" />

    <EditText
        android:cursorVisible="true"
        android:layout_margin="10dp"
        android:id="@+id/site"
        android:layout_width="match_parent"
        android:background="#2323"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView"
        android:ems="10"
        android:textSize="24sp"
        android:textColor="#232323"
        android:imeOptions="actionDone"
        android:inputType="textUri"
        tools:ignore="LabelFor" />

    <TextView
        android:id="@+id/textUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/site"
        android:layout_marginTop="5dp"
        android:text="User:"
        tools:ignore="HardcodedText" />

    <EditText
        android:cursorVisible="true"
        android:id="@+id/editUser"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textUser"
        android:layout_margin="10dp"
        android:background="#2323"
        android:ems="10"
        android:imeOptions="actionDone"
        android:inputType="textNoSuggestions"
        android:textColor="#232323"
        android:textSize="24sp"
        tools:ignore="LabelFor" />

    <TextView
        android:id="@+id/pswFtp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/editUser"
        android:layout_marginTop="5dp"
        android:text="Password:"
        tools:ignore="HardcodedText" />

    <EditText
        android:cursorVisible="true"
        android:layout_margin="10dp"
        android:id="@+id/editPswFtp"
        android:layout_width="match_parent"
        android:background="#2323"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/pswFtp"
        android:ems="10"
        android:textSize="24sp"
        android:textColor="#232323"
        android:imeOptions="actionDone"
        android:inputType="textNoSuggestions"
        tools:ignore="LabelFor" />

    <Button
        android:id="@+id/save"
        android:layout_below="@+id/editPswFtp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#232323"
        android:text="SALVA"
        tools:ignore="HardcodedText" />
</RelativeLayout>
1
Igor Mytyuk 23 Окт 2018 в 16:17

2 ответа

Лучший ответ

Решено с помощью

editText.setShowSoftInputOnFocus(false);

Вместо

editText.setInputType(InputType.TYPE_NULL);
1
Igor Mytyuk 23 Окт 2018 в 13:55

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

В res/drawable сделайте свой custom_cursor.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <size android:width="2dp"/>
    <solid android:color="@color/colorPrimary"/>
</shape>

А затем добавьте его в свой EditText

 android:textCursorDrawable="@drawable/custom_cursor"

Вы можете выбрать свои собственные цвета и размер курсора.

0
Beasteca 23 Окт 2018 в 13:22
52950099