Les vues «GONE» sont-elles préjudiciables à la performance?

Je fais une application dans laquelle il pourrait me faire gagner du temps pour avoir une mise en page unique pour plusieurs activités, certaines des vues étant définies par GONE en fonction de l'activité utilisée.

Je sais que le fait d'avoir un grand nombre de vues dans une mise en page peut entraîner de mauvaises performances. Si j'avais une activité avec un grand nombre de vues, mais une grande partie de ces vues devait être GONE, cette activité fonctionnerait-elle encore mal. C'est-à-dire que les vues définies sur GONE contribuent-elles à dégrader les performances? Si oui, demandent-ils moins de puissance de traitement que les vues VISIBLES ou INVISIBLES?

  • Le layout_above de RelativeLayout donne l'erreur "Aucune ressource trouvée"
  • Comment puis-je empêcher un EditText de redimensionner lui-même lorsque l'utilisateur tape?
  • Comment centrer une vue personnalisée sur Android?
  • Comment faire pour empêcher la toile de tourner pendant 2 secondes à des angles spécifiques?
  • Android Studio: l'analyse d'erreur XML et URI n'est pas enregistrée
  • Comment définir la valeur alpha pour ma mise en page Relative?
  • Merci!

    2 Solutions collect form web for “Les vues «GONE» sont-elles préjudiciables à la performance?”

    La première chose que vous devriez savoir sur gone vs invisible:

    • View.GONE Cette vue est invisible, et il ne nécessite aucun espace pour la mise en page.
    • View.INVISIBLE Cette vue est invisible, mais elle occupe toujours un espace pour la mise en page.

    Vous êtes sur la bonne voie en pensant à l'impact sur la mesure. Lequel est le plus efficace dépend de la fréquence à laquelle vous modifiez la visibilité de la vue.

    Par exemple, si la vue n'est pas visible pendant une grande partie du temps, il est probable que GONE serait plus efficace, car le système ne mesurerait pas trop et ne disposerait pas de votre vue invisible chaque fois qu'il devait ajuster d'autres vues sur l'écran.

    D'autre part, si la vue change fréquemment entre visible et invisible, vous obtiendrez de meilleures performances chez INVISIBLE, car vous risquez d'éviter une mesure / mise en page supplémentaire sur chaque transition.

    Voici une réponse intéressante . Je me demandais la même chose que vous, et la réponse est que View.GONE consomme plus de mémoire que d'appeler simplement removeView(view) sur la vue. Cependant, les vues GONE ne consomment plus de mémoire que View.VISIBLE car elles n'ont pas besoin d'être dessinées.

    Les quantités de mémoire se comparent comme ceci:

    View.VISIBLE > View.GONE > removing the view from the container

    Ce que je fais, utilisez View.GONE sur des vues qui ne consomment pas beaucoup de mémoire (comme une TextView) et utilisez parent.removeView(view) sur des vues qui sont beaucoup de mémoire (comme un WebView);

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.