teclado studio desactivar chrome autocompletar android android-textview autofill android-8.0-oreo android-autofill-manager

studio - autocompletar teclado android



Deshabilitar el servicio de autocompletado de Android O para una aplicaciĆ³n (8)

Es posible ?

No que yo sepa. Ciertamente, nada está documentado.

¿Hay algún método mejor que este?

No que yo sepa.

Android O tiene la función de admitir Auto-filling campos. ¿Hay alguna manera de que pueda desactivarlo para una aplicación específica. Es decir, quiero forzar a mi aplicación a no utilizar el servicio de autocompletar.

Es posible ?

Para bloquear el autocompletado de una actividad completa, use esto en onCreate () de la actividad:

getWindow() .getDecorView() .setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);

¿Hay algún método mejor que este?


Actualmente no hay una forma directa de deshabilitar el llenado automático para una aplicación completa, ya que la función de llenado automático es específica de la Vista.

Todavía puedes intentarlo de esta manera y llamar a BaseActivity en todas partes .

public class BaseActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); disableAutoFill(); } @TargetApi(Build.VERSION_CODES.O) private void disableAutoFill() { getWindow().getDecorView().setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS); } }

También puede forzar la solicitud de autocompletar de esta manera.

public void forceAutofill() { AutofillManager afm = context.getSystemService(AutofillManager.class); if (afm != null) { afm.requestAutofill(); } }

Nota: en este momento, la función de autocompletar solo está disponible en API 26 Android Oreo 8.0

¡Espero que esto ayude!



Cree un estilo personalizado de edición de texto y configure android:importantForAutofill en no .

<style name="EditTextStyleWithoutAutoFill" parent="Widget.AppCompat.EditText"> <item name="android:importantForAutofill">no</item> </style>

Luego, en su tema de actividad, establezca este estilo para editTextStyle.

<item name="android:editTextStyle">@style/EditTextStyleWithoutAutoFill</item>


Creo que la respuesta aceptada es incorrecta:

Así que tengo mi propia clase que extiende el android.support.v7.widget.AppCompatEditText y todo lo que hice fue sobrescribir el siguiente método con el siguiente valor:

@Override public int getAutofillType() { return AUTOFILL_TYPE_NONE; }

ninguna otra solución funcionó, ni siquiera android: importantForAutofill = "no".

getAutofillType () proviene de la clase View, por lo que también debería funcionar para todas las demás clases, como TextInputEditText.


En sus atributos de Editar texto, agregue android:importantForAutofill="no" Esto debería ser una solución temporal y solo se aplicará a la API 26+


Me encontré con esto también. Resulta que el problema se debió al establecer el texto de la sugerencia en el EditText anidado dentro de TextInputLayout.

Hice algunas excavaciones y encontré este nugget en las notas de la versión 26.0.0 Beta 2. Notas de la versión de soporte de Andorid junio 2017

TextInputLayout debe establecer sugerencias en onProvideAutofillStructure ()

Eso me llevó a intentar configurar la sugerencia en TextInputLayout en lugar de EditText anidado.

Esto resolvió el problema de colisión para mí. Ejemplo:

<android.support.design.widget.TextInputLayout android:id="@+id/textInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Some Hint Text" android.support.design:hintAnimationEnabled="true" android.support.design:hintEnabled="true" android.support.design:layout_marginTop="16dp"> <android.support.design.widget.TextInputEditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout>


Parece ser un error que debe solucionarse: issuetracker.google.com/issues/67675432
Mientras tanto, una solución por ahora es deshabilitar la función Autocompletar para todo el proyecto. Puede agregar en el archivo values-v26/styles.xml el siguiente estilo o puede editar su BaseEditTextStyle si está usando un estilo específico para sus vistas EditText.

<style name="App_EditTextStyle" parent="@android:style/Widget.EditText"> <item name="android:importantForAutofill">noExcludeDescendants</item> </style>

y en el archivo values-v26/themes.xml puede simplemente agregar al tema predeterminado que está utilizando en su aplicación los elementos editTextStyle y android:editTextStyle como los siguientes:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ... <item name="android:editTextStyle">@style/App_EditTextStyle</item> <item name="editTextStyle">@style/App_EditTextStyle</item> </style>

De esta forma, puede aplicar estos cambios a todos sus EditTexts sin necesidad de cambiar sus archivos de diseño o Actividades (y más adelante puede eliminarlos fácilmente cuando se solucione el error).