2013-08-30 17 views
7

Ich benutze DialogFragment mit ListView (um alle Kunden aufzulisten) und EditText (um von der Liste zu suchen), es funktioniert gut. Wenn der Dialog jedoch aus dem Fragment hervorgeht, wird immer die Tastatur angezeigt und der Benutzer muss zurücktreten. Gibt es eine Möglichkeit, dies beim ersten Mal zu verbergen, während das Dialogfragment angezeigt wird? Wenn der Benutzer dann auf Text bearbeiten klickt, sollte die Tastatur angezeigt werden.Tastatur ausblenden, wenn DialogFragment auf dem Tablet angezeigt wird?

Ich habe versucht, android:focusable="false" in meinem XML, aber es verbirgt immer die Tastatur nach dem Klick auf EditText auch nicht angezeigt.

Dann habe ich versucht android:focusableInTouchMode="true" Einstellung aber, gleiche bekommen wie oben

+0

Werfen Sie einen Blick auf diese [Post] (http://stackoverflow.com/questions/1555109/stop-edittext-from-gaining-focus-at-activity-startup) –

+0

http://StackOverflow.com/Questions/1555109/stop-edittext-from-gewinnen-focus-at-activity-startup – RVG

+0

danke freunde werden es überprüfen und lassen sie wissen @Ganesh – krishh

Antwort

16

In Ihrem DialogFragment onCreateView() fügen Sie die folgende Lösung:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{ 
View view = super.onCreateView(inflater, container, savedInstanceState); 
//to hide keyboard when showing dialog fragment 
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
return view; 
} 
+0

Awesome. Ich hatte all die anderen Posts gesehen, die sich nur mit Aktivitäten beschäftigten, und egal, wo ich es beim Umgang mit Fragmenten einsetzte, es funktionierte nicht. GetDialog() vs getActivity() war der Schlüssel für mich. Vielen Dank! – James

+0

Es funktioniert nicht, wenn der Dialog ein 'DataPickerFragment' in Android 4.4 ist, und ich lege die Tastaturversteckmethode in die' onResume() 'Methode und es funktioniert. Wie auch immer, thx. – DysaniazzZ

1

Dies sollte Ihr Problem

android:windowSoftInputMode="stateHidden" 

oder

android:windowSoftInputMode="stateUnchanged" 
Verwandte Themen