2016-08-03 7 views
1

Ich habe eine benutzerdefinierte Kontrolle erstreckt SeekBar zu sprechen, in dem ich onInitializeAccessibilityNodeInfo wie unten außer Kraft gesetzt haben:Wie android Talkback- verhindern seekbar Fortschritt

@Override 
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { 
    super.onInitializeAccessibilityNodeInfo(info); 
    info.setClassName(TextView.class.getName()); 
} 

Dann habe ich Inhaltsbeschreibung als „meine Kontrolle“ dieser Steuerung Aber wenn der Fokus auf Barrierefreiheit kommt, sprechen Talkback immer noch "meine Kontrolle,% x Prozent". Ich will nicht, dass es Fortschritt sagt, d. H. "X Prozent". Stattdessen möchte ich den Talkback-Text überschreiben, so dass statt "x percent ..." ein benutzerdefinierter Text angezeigt wird, den ich z. "x Wert ausgewählt". Wie es geht?

Antwort

-1

Es gibt zwei Möglichkeiten, dies zu erreichen:

  • Programmatisch kann man sagen:

    view.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); 
    
  • In der XML-Datei, stellen Sie den Wert auf "Nein".

    <SeekBar 
    android:importantForAccessibility="no" 
    ... /> 
    
+0

Das ist nicht das, was ich will. Dadurch wird Talkback für dieses Steuerelement vollständig deaktiviert. Aber ich möchte nicht deaktivieren. Ich möchte überschreiben, so dass anstatt "x Prozent ..." anzukündigen, sollte benutzerdefinierte Text ankündigen, die ich z. "X-Wert ausgewählt .." – pardeepk