2013-05-02 4 views
13

ich einen dialogfragment haben, die einige Inhalte in es mit einem EditText Feld hat.
Leider, wenn ich auf das EditText-Feld klicke, überdeckt das Softkeyboard die Schaltfläche zum Schließen des Dialogs. Dies ist ein Problem, das ich vonDialogFragment führt keinen Schwenk nicht mit SOFT_INPUT_ADJUST_PAN

mit aufgelösten
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

Leider, wenn ich dies tue, wird der Dialog schrumpft und andere Gegenstände darin abgedeckt bekommen. Ich habe versucht, SOFT_INPUT_ADJUST_PAN stattdessen verwenden, aber nur die umschließende Aktivität in diesem Fall angepasst, das Dialogfeld selbst verschoben nicht und die Schaltflächen zum Schließen sind noch abgedeckt. Gibt es irgendeine Möglichkeit, nur die Dialogfragment-Pan zu machen?

Mein relevant dialogfragment Code sieht wie folgt aus:

@Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
     mContactSupportView.findViewById(R.id.compose_message).clearFocus(); 
    } 
+0

Haben Sie versucht, den Code stattdessen auf onresume zu setzen, finde ich es zuverlässiger, und schalten Sie es dann in onPause aus, wenn es das ist, was Sie wollen. –

+0

Irgendein Glück mit der Problemlösung? – Junaid

+0

ein glück mit der lösung? Bitte helfen Sie –

Antwort

1

Dialog Layout attr. sollte match_parent sein. Öffnen Sie die geöffnete Tastatur und strecken Sie dann das Dialoglayout. Wie zum Beispiel Samsung Galaxy "neuen Ordner erstellen" -Dialog.

0

Hatte das gleiche Problem. Gebrauchte

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

im DialogFragment des onCreateView aber das einzige, was war, Panning die Aktivität dahinter.

Das Problem war, dass ich den Dialog in der Höhe zu MATCH_PARENT einstellte. Nachdem die Höhe auf einen genauen Wert geändert wurde, wurde das DialogFragment korrekt ausgerichtet.