10
votes

Masquer le clavier lors de la montrage de la boîte de dialogue sur la tablette?

J'utilise DialogmentFRAGMENT avec ListView (Pour répertorier tout le client) et edittext (à rechercher dans la liste), ça marche bien. Mais, chaque fois que la boîte de dialogue est affichée du fragment, le clavier est toujours affiché et l'utilisateur doit démissionner. Y a-t-il un moyen de masquer cela à la première fois tout en montrant le fragment de dialogue? Ensuite, lorsque l'utilisateur clique sur Edition du texte, le clavier doit apparaître.

J'ai essayé de paramétrer Android: Capable = "FALSE" dans mon XML mais, il masque toujours le clavier après avoir cliqué sur eittext pas non plus.

Puis j'ai essayé de paramétrer android: focautintouchmode = "vrai" mais, d'avoir la même chose que ci-dessus


3 commentaires

Jetez un coup d'œil à cette Post


Stackoverflow.com/ Questions / 1555109 / ...


merci vos amis vérifieront-le et laissez-vous savoir @ganesh


4 Réponses :


2
votes

Ceci devrait résoudre votre problème

android:windowSoftInputMode="stateUnchanged" 


0 commentaires

22
votes

Dans votre boîte de dialogue ONCreateView () ajoutez les éléments suivants:

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;
}


2 commentaires

Impressionnant. J'avais vu tous les autres postes qui viennent de traiter des activités et que je ne le mettit que lorsque je traite avec des fragments, il n'a pas fonctionné. GetDialog () vs getactivité () était la clé pour moi. Merci!


Cela ne fonctionne pas lorsque la boîte de dialogue est un datapickerfragment dans Android 4.4, et je mettez la méthode Masquer le clavier dans la méthode OnResume () et fonctionne. Quoi qu'il en soit, merci.



0
votes

Utilisez cette méthode, cela fonctionne pour moi:

public void hideSoftKeyboard() {
        try {
            View windowToken = getDialog().getWindow().getDecorView().getRootView();
            InputMethodManager imm = (InputMethodManager) getDialog().getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow( windowToken.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        } catch (Exception ex) {
            Log.e(ex);
        }
    }


0 commentaires

0
votes

Case 1: Si vous souhaitez fermer le clavier sur l'ouverture du fragment de dialogue

 public static void hideDialogFragmentKeyboard(Context context,View view) {
        view.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
            }
        }, 100);
    }   


0 commentaires