下面列出了怎么用android.view.View.AccessibilityDelegate的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Filters the Autofill suggestions to the ones that we support and shows the popup.
* @param suggestions Autofill suggestion data.
* @param isRtl @code true if right-to-left text.
* @param backgroundColor popup background color, or {@code Color.TRANSPARENT} if unspecified.
* @param dividerColor color for divider between popup items, or {@code Color.TRANSPARENT} if
* unspecified.
* @param isBoldLabel true if suggestion label's type face is {@code Typeface.BOLD}, false if
* suggestion label's type face is {@code Typeface.NORMAL}.
* @param dropdownItemHeight height of each dropdown item in dimension independent pixel units,
* 0 if unspecified.
* @param margin Margin for icon, label and between icon and label in dimension independent
* pixel units, 0 if not specified.
*/
@SuppressLint("InlinedApi")
public void filterAndShow(AutofillSuggestion[] suggestions, boolean isRtl,
int backgroundColor, int dividerColor, int dropdownItemHeight, int margin) {
mSuggestions = new ArrayList<AutofillSuggestion>(Arrays.asList(suggestions));
// Remove the AutofillSuggestions with IDs that are not supported by Android
ArrayList<DropdownItem> cleanedData = new ArrayList<DropdownItem>();
HashSet<Integer> separators = new HashSet<Integer>();
for (int i = 0; i < suggestions.length; i++) {
int itemId = suggestions[i].getSuggestionId();
if (itemId == ITEM_ID_SEPARATOR_ENTRY) {
separators.add(cleanedData.size());
} else {
cleanedData.add(suggestions[i]);
}
}
setAdapter(new DropdownAdapter(mContext, cleanedData, separators,
backgroundColor == Color.TRANSPARENT ? null : backgroundColor,
dividerColor == Color.TRANSPARENT ? null : dividerColor,
dropdownItemHeight == 0 ? null : dropdownItemHeight,
margin == 0 ? null : margin));
setRtl(isRtl);
show();
getListView().setOnItemLongClickListener(this);
getListView().setAccessibilityDelegate(new AccessibilityDelegate() {
@Override
public boolean onRequestSendAccessibilityEvent(
ViewGroup host, View child, AccessibilityEvent event) {
getListView().removeCallbacks(mClearAccessibilityFocusRunnable);
if (event.getEventType()
== AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED) {
getListView().postDelayed(
mClearAccessibilityFocusRunnable, CLEAR_ACCESSIBILITY_FOCUS_DELAY_MS);
}
return super.onRequestSendAccessibilityEvent(host, child, event);
}
});
}
public AccessibilityDelegate getAccessibilityDelegate() {
return null;
}
public static void setAccessibilityDelegate(View v, @Nullable Object delegate) {
v.setAccessibilityDelegate((AccessibilityDelegate) delegate);
}
public static Object getAccessibilityNodeProvider(Object delegate,
View host) {
return ((AccessibilityDelegate) delegate).getAccessibilityNodeProvider(host);
}
public static boolean performAccessibilityAction(Object delegate, View host, int action,
Bundle args) {
return ((AccessibilityDelegate) delegate).performAccessibilityAction(host, action, args);
}
public static Object newAccessibilityDelegateDefaultImpl() {
return new AccessibilityDelegate();
}
public static boolean dispatchPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
return ((AccessibilityDelegate) delegate).dispatchPopulateAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityNodeInfo(Object delegate, View host, Object info) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityNodeInfo(host,
(AccessibilityNodeInfo) info);
}
public static void onPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onPopulateAccessibilityEvent(host, event);
}
public static boolean onRequestSendAccessibilityEvent(Object delegate, ViewGroup host,
View child, AccessibilityEvent event) {
return ((AccessibilityDelegate) delegate).onRequestSendAccessibilityEvent(host, child,
event);
}
public static void sendAccessibilityEvent(Object delegate, View host, int eventType) {
((AccessibilityDelegate) delegate).sendAccessibilityEvent(host, eventType);
}
public static void sendAccessibilityEventUnchecked(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).sendAccessibilityEventUnchecked(host, event);
}
public static void setAccessibilityDelegate(View v, Object delegate) {
v.setAccessibilityDelegate((AccessibilityDelegate) delegate);
}
public static Object getAccessibilityNodeProvider(Object delegate,
View host) {
return ((AccessibilityDelegate) delegate).getAccessibilityNodeProvider(host);
}
public static boolean performAccessibilityAction(Object delegate, View host, int action,
Bundle args) {
return ((AccessibilityDelegate) delegate).performAccessibilityAction(host, action, args);
}
public static Object newAccessibilityDelegateDefaultImpl() {
return new AccessibilityDelegate();
}
public static boolean dispatchPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
return ((AccessibilityDelegate) delegate).dispatchPopulateAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityNodeInfo(Object delegate, View host, Object info) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityNodeInfo(host,
(AccessibilityNodeInfo) info);
}
public static void onPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onPopulateAccessibilityEvent(host, event);
}
public static boolean onRequestSendAccessibilityEvent(Object delegate, ViewGroup host,
View child, AccessibilityEvent event) {
return ((AccessibilityDelegate) delegate).onRequestSendAccessibilityEvent(host, child,
event);
}
public static void sendAccessibilityEvent(Object delegate, View host, int eventType) {
((AccessibilityDelegate) delegate).sendAccessibilityEvent(host, eventType);
}
public static void sendAccessibilityEventUnchecked(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).sendAccessibilityEventUnchecked(host, event);
}
public static void setAccessibilityDelegate(View v, Object delegate) {
v.setAccessibilityDelegate((AccessibilityDelegate) delegate);
}
public static Object newAccessibilityDelegateDefaultImpl() {
return new AccessibilityDelegate();
}
public static boolean dispatchPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
return ((AccessibilityDelegate) delegate).dispatchPopulateAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityEvent(host, event);
}
public static void onInitializeAccessibilityNodeInfo(Object delegate, View host, Object info) {
((AccessibilityDelegate) delegate).onInitializeAccessibilityNodeInfo(host,
(AccessibilityNodeInfo) info);
}
public static void onPopulateAccessibilityEvent(Object delegate, View host,
AccessibilityEvent event) {
((AccessibilityDelegate) delegate).onPopulateAccessibilityEvent(host, event);
}