語言

View.OnProvideAutofillStructure(ViewStructure, AutofillFlags) 方法

定義

填寫 A ViewStructure 以完成自動填充請求。

[Android.Runtime.Register("onProvideAutofillStructure", "(Landroid/view/ViewStructure;I)V", "GetOnProvideAutofillStructure_Landroid_view_ViewStructure_IHandler", ApiSince=26)]
public virtual void OnProvideAutofillStructure(Android.Views.ViewStructure? structure, Android.Views.AutofillFlags flags);
[<Android.Runtime.Register("onProvideAutofillStructure", "(Landroid/view/ViewStructure;I)V", "GetOnProvideAutofillStructure_Landroid_view_ViewStructure_IHandler", ApiSince=26)>]
abstract member OnProvideAutofillStructure : Android.Views.ViewStructure * Android.Views.AutofillFlags -> unit
override this.OnProvideAutofillStructure : Android.Views.ViewStructure * Android.Views.AutofillFlags -> unit

參數

structure
ViewStructure

用結構化檢視資料填入自動填充。

flags
AutofillFlags

可選的旗幟。

屬性

備註

填寫 A ViewStructure 以完成自動填充請求。

結構應至少包含以下屬性:<ul><li>自動填充 id (ViewStructure#setAutofillId(AutofillId, int))。 <li>自動填充類型(ViewStructure#setAutofillType(int))。 <li>自動填充值(ViewStructure#setAutofillValue(AutofillValue))。 <li>資料是否敏感ViewStructure#setDataIsSensitive(boolean)()。 </ul>

同時建議設定以下屬性——結構屬性越多,正確使用該結構的機率 android.service.autofill.AutofillService 越高:

<ul><li>自動填充提示(ViewStructure#setAutofillHints(String[]))。 <li>自動填充選項(ViewStructure#setAutofillOptions(CharSequence[]))當視圖只能以預設值填充時(通常用於自動填充類型為 #AUTOFILL_TYPE_LIST)。 <li>資源編號(ViewStructure#setId(int, String, String, String))。 <li>類別名稱(ViewStructure#setClassName(String))。 <li>內容描述(ViewStructure#setContentDescription(CharSequence))。 <li>視覺屬性如可見性(ViewStructure#setVisibility(int))、維度()、ViewStructure#setDimens(int, int, int, int, int, int)不透明度(ViewStructure#setOpaque(boolean))。 <li>表示文字欄位的視圖,文字屬性如文字本身ViewStructure#setText(CharSequence)()、文字提示(ViewStructure#setHint(CharSequence)、輸入類型 ()、ViewStructure#setInputType(int)<li>表示 HTML 節點的視圖、其網路領域(ViewStructure#setWebDomain(String))及 HTML 屬性(()。ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo) </ul>

此方法的預設實作已根據相關 View 方法設定大部分屬性(例如,自動填充 ID 使用 #getAutofillId()、自動填充類型設定 #getAutofillType()、等等),標準 Android widgets 函式庫中的檢視也會覆寫它以設定相關屬性(例如, android.widget.TextView 已設定文字屬性),因此建議僅在以下情況下覆寫此方法(並呼叫 super.onProvideAutofillStructure())

<ul><li>視圖內容不包含個人識別資訊(PII),因此可呼叫 ViewStructure#setDataIsSensitive(boolean) 傳遞 false。 <li>視圖只能自動填充預設選項,因此可以呼叫 ViewStructure#setAutofillOptions(CharSequence[])。 </ul>

<b>注意:</b>left 中設定的 top 和 ViewStructure#setDimens(int, int, int, int, int, int) 值必須相對於結構中包含的下一個ViewGroup#isImportantForAutofill()前置視圖。

檢視主要透過以下方式 <支援自動填充框架:ul><li>提供定義檢視意義及如何自動填充的元資料。 <li>當視圖值改變時,透過呼叫 AutofillManager#notifyValueChanged(View)來通知 Android 系統。 <Li>實作自動填充視圖的方法。 </ul>

此方法負責前者; #autofill(AutofillValue) 負責後者。

的 android.view.View.onProvideAutofillStructure(android.view.ViewStructure, int)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於