0

Ich habe einige Probleme mit EditText oder andere Eingabe/Picker von nicht meine aktuelle Ansicht/Fragment, Pop-in. Mein neues Fragment Aufruf EditText oder Picker von übergebenen Fragment, wenn er ist erstellen.Android - Was passiert, wenn getCurrentFocus(). ClearFocus()

Ich weiß, wie man das beheben kann. Ich kann einige Attrappen mit requestFocus() ansehen. Oder manchmal (Und das ist das Problem) auf activity.getCurrentFocus().clearFocus(); Aber für die letzte aussehen wie gescheitert 1/2.

Also hier ist meine Frage: Wie funktioniert getCurrentFocus(), hat er nur aktuelle Aktivität anzeigen oder Kind als Fragment? Warum funktioniert das nicht jedes Mal?

Wenn jemand eine Führung mit diesem bekam wird, dankbar sein: D

+0

Ist Ihr Problem, dass die Ansicht, die Fokus gewann, jedes Mal anders ist? –

+0

Das Problem ist, dass die Ansicht, die den Fokus erhalten, eine Ansicht von einem alten Fragment ist. – Nek

Antwort

0

Wenn die Ansicht, die den Fokus gewonnen anders ist jedes Mal, wenn Sie so etwas wie dies versuchen:

View current = getCurrentFocus(); 
if (current != null) { 
current.clearFocus(); 
} 

Bei der Verwendung von clearFocus() funktioniert nicht wie Sie, können Sie:

<LinearLayout 
android:id="@+id/my_layout" 
android:focusable="true" 
android:focusableInTouchMode="true" ...> 

in die oberste Layoutansicht (ein lineares Layout). So entfernen Sie den Fokus von allen Buttons/EditTexts etc, können Sie dann tun nur

LinearLayout myLayout = (LinearLayout) activity.findViewById(R.id.my_layout); 
myLayout.requestFocus(); 

Aus der Dokumentation

Wenn eine Ansicht löscht den Rahmen konzentrieren versucht, den Fokus auf das zu geben, erste fokussierbare Ansicht von oben. Wenn diese Ansicht die erste von oben ist, die den Fokus verwenden kann, werden alle Callbacks aufgerufen, die sich auf das Löschen des Fokus beziehen, woraufhin das Framework den Fokus auf diese Ansicht legt.


Hoffnung, das hilft.

+0

Sorry, aber das ist nicht das, was ich frage (CF-Frage: "Ich weiß, wie ich das beheben kann"). Ich will nicht den Weg, das zu beheben. Ich weiß, verwenden Sie eine Dummy-Ansicht oder getCurrentFocus. Ich, warum der erste nicht jedes Mal funktioniert. – Nek

+0

Überprüfen Sie meine Bearbeitung 'From the docs' –

+0

Vielen Dank! Ich werde mehr untersuchen :) – Nek

Verwandte Themen