无法在Android

时间:2015-10-28 17:31:17

标签: android android-snackbar android-accessibility

我正在尝试在显示小吃栏后立即发送辅助功能。但是什么也没发挥。这是我在onStart()生命周期方法中的代码:

            final Snackbar snackbar = Snackbar
                       .make(findViewById(R.id.container), "snackbars are cool", Snackbar.LENGTH_INDEFINITE);
               snackbar.setActionTextColor(getResources().getColor(R.color.snackbar_actions));


        View snackbarView = snackbar.getView();
   snackbarView.setBackgroundColor(Color.DKGRAY);
   TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
   textView.setTextColor(Color.WHITE);
   snackbar.show();


//time to send a accessibility event below
       final ViewGroup parentView = (ViewGroup)findViewById(R.id.container);
       if (parentView != null) {
           final AccessibilityManager a11yManager =
                   (AccessibilityManager) this.getSystemService(Context.ACCESSIBILITY_SERVICE);

           if (a11yManager != null && a11yManager.isEnabled()) {
               final AccessibilityEvent e = AccessibilityEvent.obtain();
               snackbarView.onInitializeAccessibilityEvent(e);
               e.getText().add("some more text to say");
//nothing happens here

           parentView.requestSendAccessibilityEvent(snackbarView, e);
       }

    }

2 个答案:

答案 0 :(得分:1)

一些开发人员为此写了一个修复程序。我的另一个问题是我不应该出于某种原因在onStart中调用它。无论如何,我创建了一个utils方法,并使用了如下所示的开发人员命令:

var first = numberList[2-1][0];
first.ToString();

你可以看到它here

答案 1 :(得分:0)

如果您想为辅助功能事件添加更多信息,可以为视图实施AccessibilityDelegate并覆盖onInitializeAccessibilityEvent

@Override 
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
  super.onInitializeAccessibilityEvent(event);
  event.getText().add("some more to say");
}