【发布时间】:2018-01-25 15:33:25
【问题描述】:
Android O 具有支持Auto-filling 字段的功能。有什么方法可以为特定应用程序禁用它。那就是我想强制我的应用程序不使用自动填充服务。
有可能吗?
要阻止整个活动的自动填充,请在活动的 onCreate() 中使用:
getWindow()
.getDecorView()
.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
还有比这更好的方法吗?
【问题讨论】:
-
自动填充会导致一个非常模糊的崩溃,当用户将焦点更改为 TextInputLayout 中先前填充的 textInputEditText 时,我们会发生这种情况:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.空对象引用上的 view.View.getBoundsOnScreen(android.graphics.Rect)'
-
发布了一个错误issuetracker.google.com/issues/67675432,请加注星标
-
创建一个活动类,供其他所有活动继承并添加此代码。
-
@Justin,这在 Android 8.1 上是固定的,你能用 8.1 测试它吗
-
我相信,如果它尝试自动填充诸如 EditText 之类的数据超过 1MB 的内容,这也可能导致
TransactionTooLargeExceptions,这超出了 Bundle 的限制。请参阅AutoFillManager的来源。解决方法是在视图的 xml 中包含android:importantForAutofill="noExcludeDescendants"。
标签: android textview autofill android-8.0-oreo android-autofill-manager