日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

view类不响应自定义消息_安卓平台如何给控件添加自定义操作?

發(fā)布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 view类不响应自定义消息_安卓平台如何给控件添加自定义操作? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在安卓應(yīng)用設(shè)計和開發(fā)過程中,設(shè)計人員為了界面簡潔、有獨特的交互方式,可能會為控件設(shè)計特殊的操作手勢,例如消息列表中單指按住消息向左滑刪除消息;系統(tǒng)頂部的通知單指向左滑可以關(guān)閉通知等。

這些操作對于普通用戶非常方便,但是此種操作方式?jīng)]有做特殊支持的話,可能讓某些障礙用戶無法使用此功能。如果是一名通過屏幕閱讀器使用應(yīng)用的視障用戶,他們就很難借助屏幕閱讀器完成此操作。

此時,應(yīng)該像原生Android系統(tǒng)中的通知一樣給控件添加自定義操作提示和操作支持。

1、添加自定義操作

重寫View類OnInitialzeAccessibilityNodeInfo()的方法:

如果是標(biāo)準(zhǔn)控件,可以通過無障礙代理View.AccessibilityDelegate重寫此方法。

在此方法中首先調(diào)用父類的實現(xiàn),然后調(diào)用AccessibilityNodeInfo對象的addAction方法添加自定義的事件。

注意:

1.這里添加的自定義事件的事件ID必須大于16進(jìn)制的0x01ffffff,因為0x01ffffff本身以及小于此值都是系統(tǒng)定義的事件的ID。

2.自定義事件必須提供事件描述文本,不提供描述文本無障礙服務(wù)將無法提示和獲取到此事件。下面是樣例代碼:

@Override
protected void onInitialzeAccessibilityNodeInfo(AccessibilityNodeInfo info){
//調(diào)用父類實現(xiàn)
super.onInitializeAccessibilityNodeInfo(info);
//設(shè)置自定義事件
node.addAction(new AccessibilityAction(0x02000000, "菜單1"));
node.addAction(new AccessibilityAction(0x02fffffe, "菜單2"));
}

2、響應(yīng)自定義操作

添加了自定義操作事件之后,還需要處理用戶的自定義操作,這樣用戶在通過無障礙服務(wù)操作這些自定義事件時,才能得到正確的響應(yīng)結(jié)果。重寫performAccessibilityAction()方法,在此方法中響應(yīng)對應(yīng)的事件ID的操作。如下面樣例代碼所示:

//返回true表示此方法已經(jīng)處理完事件,返回false表示事件未處理完
@Override
Protected boolean performAccessibilityAction(int action, Bundle data) {
Switch (action) {
Case 0x02000000: //菜單1的處理,這里簡單的彈出提示信息
Toast.makeText(context, “你點擊了菜單1”, Toast.LENGTH_SHORT).show();
Return true;
Case 0x02fffffe: //菜單2的點擊處理
Toast.makeText(context, “你點擊了菜單2”, Toast.LENGTH_SHORT).show();
Return true;
}
Return false;
}

TalkBack朗讀自定義提示:

TalkBack的自定義操作菜單:

點擊操作菜單的執(zhí)行結(jié)果:

簡單的兩步處理就能讓你的應(yīng)用更方便屏幕閱讀器用戶使用,快看看你的應(yīng)用中哪里可以使用此技巧吧!花點兒時間應(yīng)用上此方法,讓你的應(yīng)用更加高大上。

總結(jié)

以上是生活随笔為你收集整理的view类不响应自定义消息_安卓平台如何给控件添加自定义操作?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。