Вопрос

Есть ли способ программного отключения того списка автоматического масштаба, который появляется, когда вы вводите EditText?

Это было полезно?

Решение

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

Добавьте эту строку в свой EditText.

android:inputType="textFilter" 

Вот совет. Используйте эту строку, если вы хотите иметь возможность использовать клавишу «Enter».

android:inputType="textFilter|textMultiLine"

Другие советы

android:inputType="textNoSuggestions"  

Также вам лучше прочитать это

android:inputType="textVisiblePassword" 

работает как очарование

  1. Программатически

    edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    
  2. XML

    android:inputType="textNoSuggestions|textVisiblePassword"
    

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

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 

На вашем элементе управления EditText. Как сообщил Чарли в другом ответе на этой странице,

android:inputType="textVisiblePassword"

это XML -версия этого флага.

Вы можете объединить этот флаг с

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

Я использовал inputtype.type_text_flag_no_suggestions без inputtype.type_text_variation_visible_password, который работал для большинства телефонов, но затем я наткнулся на телефон Samsung, для которого я все еще получал автозаполнение.

Android программно отключите автозаполнение/Autosug -Gest для EditText в эмуляторе

который предложил с использованием inputtype.type_text_variation_visible_password.

Я попробовал это (вместе с inputtype.type_text_flag_no_suggestions), и это сработало. Вы можете понять, почему даже телефон, который не может принять намек на то, что вам не нужно автозаполнить, будет имеют Чтобы позволить его отключению для поля пароля. Помимо задержки, это может быть лучший способ получить то, что мы хотим от таких телефонов.

На некоторых моих устройствах шрифт был слегка изменен этим флагом - наиболее заметно, чтобы более четко отличать ноль (0) от OH (O), что, очевидно, было бы важно для отображения пароля. Но, по крайней мере, это сработало, и новый шрифт не был непривлекательным.

Несмотря на то, что пост, на котором я обнаружил, что это предположение было старым, телефон, на котором я протестировал, был очень недавним - Samsung Galaxy Note II (SPH -L900) Android 4.1.2 от Sprint. Выбранная клавиатура была «Samsung Keyboard», и, очевидно, это было по умолчанию для этого телефона, когда клиент получил его от Sprint. Таким образом, эта проблема, по -видимому, сохранялась на протяжении многих лет, по крайней мере, для некоторых из важных телефонов Samsung.

Для тех из вас, кто, как и я, не имеет испытательного устройства Samsung, это может быть важной информацией.

Для версии Android 8.0 или выше, этот код не работает, и для автозаполнения TextView также этот код не работает, поэтому я предложу вам использовать ниже код для кода для Отключите авторитетные предложения в 8.0 или выше Android Vesrion Используйте это свойство EditText Android: VatingForautOfill = "Нет"

                   <EditText
                            android:id="@+id/name"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:enabled="false"
                            android:focusable="false"
                            android:imeOptions="actionDone"
                            android:maxLength="80"
                            android:maxLines="1"
                            android:textColor="@color/colorBlack"
                            android:textColorHint="@color/colorBlack"
                            android:importantForAutofill="no"
                            android:textSize="@dimen/_12sdp"
                            app:bFontsEdt="light" />

и для автозаполнения TextView, подобного этому, используйте это поле, чтобы отключить автоматическое предложение Android: VatingForautOfill = "Нет" :

      <AutoCompleteTextView
                        android:id="@+id/autocompleteEditTextView"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/_3sdp"
                        android:layout_marginTop="@dimen/_5sdp"
                        android:background="@null"
                        android:imeOptions="actionDone"
                        android:singleLine="true"
                        android:text=""
                        android:textColor="@color/colorBlack"
                        android:textColorHint="@color/colorGrayDark"
                        android:importantForAutofill="no"
                        android:textSize="@dimen/_12sdp" />

Поскольку это все еще проблема, я собираюсь опубликовать этот ответ. Android: inputType = "TextVisiblePassword" работает, но он нежелательен, сначала потому, что это искажение ввода, а во -вторых, потому что он отключает жест набрать!

Вместо этого мне пришлось использовать оба флага Textnosuggestions и Textfilter. Любой один не работал.

android:inputType="textCapSentences|textFilter|textNoSuggestions"

Textcapsentences были по другим причинам. Но этот inputtype сохранил наводнение наводнения и отключила панель инструментов предложения.

Я получал эту вещь на телефонах Samsung, работающих 4.4.4. Это решило мою проблему

android:inputType="text|textVisiblePassword|textNoSuggestions"

Хорошо, проблема заключалась в том, что в Eclipse вы не получаете предложения для флага по имени: textnosuggestion

И вы не можете установить его в main.xml (где вы проектируете пользовательский интерфейс), потому что этот атрибут для inputtype не распознается. Таким образом, вы можете установить его в коде с помощью int const:

EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);

И спасибо Jasta00 за то, что помог мне разобраться в ответе для этого.

EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

Это поможет вам.

android:inputType="text|textNoSuggestions"

Вы можете просто использовать EditText setThreshold() метод Установите порог, чтобы скажем 100, когда вы не хотите показывать прогнозы. Если вы хотите повторно активировать, показывая прогнозы, установите его обратно на небольшой INT, как 1 или 2, в зависимости от ваших потребностей.

    // 100% correct & tested
    txtKey = (EditText) view.findViewById(R.id.txtKey);
    txtKey.setPrivateImeOptions("nm");
    txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top