J'ai utilisé Framelayout dans lequel j'ai utilisé deux linearlayouts. Le second est initialement invisible, mais lorsque j'appuyais sur un bouton sur la présentation, la deuxième disposition devient visible et chevauche la première disposition. Ce que je veux, c'est lorsque ma deuxième mise en page apparaît, les éléments de la première disposition ne doivent pas être cliqués (ou activés). Pour cela, j'ai essayé Setenabled (Faux) et SetClickable (Faux), mais les deux de ces deux ne fonctionnent pas, je ne reçois pas quel est le problème.
code est comme suit p>
4 Réponses :
essayer d'utiliser setFocusable (FALSE); Peut-être que cela devrait vous aider p>
Essayez en travaillant avec des enfants au lieu de la mise en page elle-même
Cela ne fonctionnera pas s'il y a des enfants imbriqués pour cette mise en page. Nous devons également définir des faux cliquables pour chaque enfant et leur sous-enfant. J'ai posté une implémentation imbriquée pour la même chose ci-dessous.
Prenez la taille de la mise en page avant comme la taille de la mise en forme de fond et le devant
La couleur de fond de la disposition transparente de fond de fond est partiellement de
visible.
Et définir OnClickListener à la disposition avant et à ONClick Methode Ne rien faire. P>
Cette réponse n'est pas exactement comme vous le souhaitez, mais c'est une bonne alternative. P>
espère qu'il aide p>
Vous pouvez utiliser une récursion pour cela et désactiver récursivement une propriété cliquable pour tous les enfants-
public static void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) { int childCount = viewGroup.getChildCount(); for (int i = 0; i < childCount; i++) { View view = viewGroup.getChildAt(i); view.setEnabled(enabled); if (view instanceof ViewGroup) { enableDisableViewGroup((ViewGroup) view, enabled); } else if (view instanceof ListView) { view.setEnabled(enabled); ListView listView = (ListView) view; int listChildCount = listView.getChildCount(); for (int j = 0; j < listChildCount; j++) { listView.getChildAt(j).setEnabled(enabled); } } } }
Alors pouvez-vous publier votre code, que vous avez essayé?