View.AccessibilityDelegate 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此類別代表一種代表,可 View 透過寫作而非繼承來提升可及性支持。
[Android.Runtime.Register("android/view/View$AccessibilityDelegate", DoNotGenerateAcw=true)]
public class View.AccessibilityDelegate : Java.Lang.Object
[<Android.Runtime.Register("android/view/View$AccessibilityDelegate", DoNotGenerateAcw=true)>]
type View.AccessibilityDelegate = class
inherit Object
- 繼承
- 屬性
備註
此類別代表一種代表,可 View 透過寫作而非繼承來提升可及性支持。 它特別針對擴充基本 View 類別(即 android.view 套件中的類別)的小工具開發者,希望其應用程式向下相容。
<div class=“特殊參考”><h3>開發者指南</h3>
欲了解更多關於讓應用程式無障礙的資訊,請閱讀 無障礙 開發者指南。
</div>
開發者希望使用無障礙代理的情境,是指覆寫在應用程式支援的最小 API 版本後期引入的方法。 例如,當無障礙 API 首次推出時,此方法 View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) 在 API 版本 4 中並未提供。 若開發者希望其應用程式能在 API 版本 4 裝置上執行(假設應用程式所用的其他 API 皆為版本 4 或更低),並利用此方法,他們可不覆蓋會破壞應用程式向下相容性的方法,而是在此代理中覆寫對應方法,並在系統 API 版本足夠高時,在目標檢視中註冊該代理, 也就是說,API 版本與引入 View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)的 API 版本相同或更高。
以下是一個實作範例:
<pre><p> if (Build.VERSION.SDK_INT >= 14) { // If the API version is equal of higher than the version in // which onInitializeAccessibilityNodeInfo was introduced we // register a delegate with a customized implementation. View view = findViewById(R.id.view_id); view.setAccessibilityDelegate(new AccessibilityDelegate() { public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { // Let the default implementation populate the info. super.onInitializeAccessibilityNodeInfo(host, info); // Set some other information. info.setEnabled(host.isEnabled()); } }); }
</pre></p>
此代理包含與 View 中無障礙方法對應的方法。 若已指定代理,View 中的實作將交接給該代理中對應的方法處理。 預設的 delegate 方法實作在未設定 accessibility delegate 時,行為與 View 中對應的方法完全相同。 因此,為了自訂檢視方法的行為,客戶端只能覆蓋對應的代理方法,而不改變主機視圖中其他可及性相關方法的行為。
<strong>Note:</strong> 在 android.os.Build.VERSION_CODES#M API 23平台版本之前,套件中視圖 android.widget.* 的代理方法會 先 於主機方法被呼叫。 這可防止某些屬性如類別名稱被覆寫 AccessibilityDelegate#onInitializeAccessibilityNodeInfo(View, AccessibilityNodeInfo)修改,因為任何變更都會被主機類別覆蓋。
從 開始 android.os.Build.VERSION_CODES#M API 23,代理方法會在 host 方法 後 被呼叫,所有屬性都需修改且不被 host 類別覆寫。 “note”b><> Note:</b> 請使用 <c>androidx.core.view.AccessibilityDelegateCompat</c> 包裝器來取代此類別以達到向下相容性。
</旁白>
Java 文件 android.view.View.AccessibilityDelegate。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| View.AccessibilityDelegate() |
初始化一個新的 View.AccessibilityDelegate 實例。 |
| View.AccessibilityDelegate(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
此類別代表一種代表,可 |
| JniPeerMembers |
取得 .NET 用於 Android 綁定執行時的 JNI 節點元資料。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
取得 .NET 用於 Android 綁定執行時的 JNI 類別處理柄。 |
| ThresholdType |
取得 .NET 用於 Android 綁定執行時所使用的受管理型別。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
此類別代表一種代表,可 |
| IJavaPeerable.Finalized() |
此類別代表一種代表,可 |
| IJavaPeerable.JniObjectReferenceControlBlock |
此類別代表一種代表,可 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
此類別代表一種代表,可 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
此類別代表一種代表,可 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
此類別代表一種代表,可 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此類別代表一種代表,可 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |