Optionsmenü - Fokus aus Element entfernen

8

Wie entferne ich den Fokus vom Optionsmenü? I.e. Wenn ich das Menü zum ersten Mal öffne, hat keines der Elemente den Fokus. Wenn ich mich jedoch auf einen Trackball konzentriere und dann das Menü schließe und wieder öffne, ist der Fokus immer noch da. Wie werde ich es loswerden?

Ich lösche und erzeuge das Menü in onPrepareOptionsMenu (wie ich es auf den aktuellen Aktivitätszustand einstellen muss).

BEARBEITEN:

%Vor%     
Asahi 17.10.2010, 10:55
quelle

1 Antwort

0

Sobald Sie den Trackball benutzen (oder eine andere Taste auf der Tastatur drücken), verlassen Sie den Touch-Modus . Von diesem Zeitpunkt an wird es eine Ansicht geben, die den Fokus hat (Sie können dies sehen, indem Sie Activity.getCurrentFocus() aufrufen). Dieser Modus bleibt bestehen, bis Sie den Bildschirm erneut berühren. An diesem Punkt gelangen Sie erneut in den Berührungsmodus, und wenn Sie das Menü bei nachfolgenden Anlässen öffnen, wird kein fokussierter Gegenstand angezeigt. Dies geschieht in jeder einzelnen Android-Anwendung, die ich mit einem Menü gesehen habe.

Diese Situation besteht nicht nur für Optionsmenüelemente, sondern auch für Ansichten in Ihrem Layout. Sobald Sie den Berührungsmodus verlassen, glaube ich nicht, dass es eine Möglichkeit gibt, ihn erneut einzugeben (und damit den Fokus von allen Ansichten zu entfernen), wenn Sie nicht den Bildschirm berühren. Eine Lösung, die ich zum Entfernen der sichtbaren Effekte des Fokus (wenn nicht im Berührungsmodus) erwähnt wurde, besteht darin, sie einfach einem Element zu geben, das nicht sichtbar ist. Können Sie eine unsichtbare Menüoption erstellen und den Fokus festlegen, wenn Sie sie löschen möchten?

Es sei denn, Sie finden einen Weg zu programmatischem, zuverlässigem Betreten des Touch-Modus oder zum Entfernen des Fokus von allen Ansichten (Aufruf von View.clearFocus() übergibt ihn einfach an eine andere Ansicht!), das ist Ihre beste Wahl.

    
antonyt 07.08.2011 14:42
quelle

Tags und Links