Donc, je trouve ce morceau de code vraiment cool pour fermer le clavier lorsque je clique sur non EditText
vues. Et cela fonctionne très bien, sauf pour Fragments et DialogFragments ont commencé à utiliser getChildFragmentManager()
. Est-ce que quelqu'un pourrait expliquer pourquoi l'exception et comment je pourrais y remédier? Je conserve le code dans une classe utilitaire et l'utilise dans toute mon application. Essentiellement, pour le cas de problème, je l'utilise sur FragmentB est commencé par FragmentA en utilisant getChildFragmentManager()
, puis le code n'affecte pas les vues de FragmentB.Comment faire pour fermer le clavier en cliquant sur des vues non-EditText dans le fragment enfant
Q
Comment faire pour fermer le clavier en cliquant sur des vues non-EditText dans le fragment enfant
1
A
Répondre
0
essayez ceci pour masquer le clavier,
public void hideSoftKeyboard() {
try {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
}
0
essayez le code ci-dessous:
@Override
public boolean onTouchEvent(MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
return true;
}
0
Si vous utilisez FragmentActivity utilisation de fragments non activité. Je suggère d'essayer essayer.
comme
try{
InputMethodManager inputMethodManager = (InputMethodManager) activity
.getSystemService(Activity.INPUT_METHOD_SERVICE);
}catch(Exception){
InputMethodManager inputMethodManager = (InputMethodManager) fragmentactivity.getSystemService(Activity.INPUT_METHOD_SERVICE);
}
0
J'ai trouvé la solution. Peut-être que quelqu'un d'autre trouvera utile
public static void setupUI(View view, final Activity activity) {
// Set up touch listener for non-text box views to hide keyboard.
if (!(view instanceof EditText)) {
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
LayoutUtils.hideSoftKeyboard(activity,v);
return false;
}
});
}
// If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupUI(innerView, activity);
}
}
}
private static void hideSoftKeyboard(Activity activity, View v) {
InputMethodManager inputMethodManager = (InputMethodManager) activity
.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
Voyez comment je remplacerai activity.getCurrentFocus()
avec v
. Et c'est tout. Cela fonctionne dans toutes les situations maintenant.
Questions connexes
- 1. Comment faire pour fermer le clavier logiciel dans le fragment
- 2. Comment faire le bouton « Terminé » clavier Fermer
- 3. Quitter Clavier sur le bouton cliquez sur ce petit fragment
- 4. en cliquant sur le fragment invoque fragment derrière
- 5. angulaire 2: Supprimer composante enfant cliquant sur le bouton Fermer dans le composant
- 6. Fermer le clavier dans UIWebView
- 7. Get android vues enfant la barre d'outils dans le fragment
- 8. Comment fermer le formulaire enfant précédent sur cliquant sur un autre formulaire enfant MDI en utilisant C#
- 9. Comment fermer le formulaire en cliquant sur la souris?
- 10. Comment fermer l'accordéon précédent en cliquant sur le suivant
- 11. Comment fermer le formulaire enfant
- 12. Comment fermer le menu bootstrap en cliquant sur l'icône?
- 13. Fermer le menu en cliquant sur le menu et ESC
- 14. fermer le sous-menu en cliquant sur le menu suivant
- 15. Comment faire pour reprendre des fragments enfant sur le fragment parent reprendre
- 16. Fermer le fragment dans hanlder
- 17. App se bloque en cliquant sur textView dans le fragment
- 18. Comment faire pour fermer le menu hamburger en cliquant en dehors de celui-ci
- 19. Fermer la bascule en cliquant sur le lien de navigation
- 20. jQuery fermer/toggle div en cliquant sur le corps
- 21. overlay Fermer Div en cliquant partout sur le corps
- 22. Fermer le clavier logiciel sur iOS/Android
- 23. Comment fermer le clavier dans le menu de diapos
- 24. Masquer le clavier de l'iPad en cliquant sur le corps du document
- 25. Force imprimante Android Fermer En cliquant le bouton Fermer
- 26. modal Fermer en cliquant sur le bouton retour NAVIGATEUR
- 27. Diver parent div en cliquant sur le lien enfant
- 28. Comment fermer le menu du tiroir en cliquant sur le menu de l'article?
- 29. Comment changer des vues en ViewPager Fragment
- 30. Comment fermer le menu en cliquant sur un autre endroit sur le site jquery
Quelle est l'exception? Pouvez-vous partager les journaux? –
@mussharapp par 'exception', je veux dire aberration: je ne parle pas d'une exception Java. – learner
Qu'est-ce que l'activité? où vous avez initialisé? –