Как сделать TextInputEditText доступным только для чтения? - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь сделать TextInputEditText доступным только для чтения, но у меня быстро мигает курсор, и щелчок срабатывает.

Я попытался установить isFocusable = false и isClickable = false.

XML Layout:

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/label_address"
    android:layout_marginTop="@dimen/material_layout_vertical_spacing_between_content_areas"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/input_address"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="actionNext"/>

</com.google.android.material.textfield.TextInputLayout>

Код для создания только для чтения:

fun TextInputEditText.disable() {
    isFocusable = false
    isClickable = false
}

Какой правильный или правильный метод должен сделать TextInputEditText только для чтения?

Ответы [ 5 ]

1 голос
/ 11 апреля 2019

Правильный способ сделать это - использовать TextView, и вы можете применить его к вашему EditTextStyle.Но вы не должны реализовывать EditText и использовать его как TextView, помните, что объекты предназначены для удовлетворения специфических потребностей, поэтому всегда старайтесь найти тот, который подходит лучше всего, в зависимости от того, что вы хотите сделать.

0 голосов
/ 11 апреля 2019

XML-код

Вы можете попробовать использовать следующие свойства:

android:textIsSelectable="true"  
android:inputType="none" 

Обратите внимание, что android:editable является устаревшим .

Код Колтина

Предполагая, что ваша переменная называется editText, вы можете попробовать это:

editText.isEnabled = false
0 голосов
/ 11 апреля 2019

Попробуйте добавить Edittext.setEnabled(false); или android:editable="false" к вашему виду.

0 голосов
/ 11 апреля 2019

Попробуйте функцию isEnabled для вашего TextInputEditText.

input_address.isEnabled = false

0 голосов
/ 11 апреля 2019

Я обычно использую setEnabled(boolean) ссылка ссылка

Может ли это соответствовать вашим потребностям?

...