209 votes

Comment affectant false à baselineAligned améliore la performance en LinearLayout ?

Je viens de construction d'une INTERFACE utilisateur dans le format xml, et les Peluches m'a donné un avertissement et dit jeu android:baselineAligned à false pour améliorer les performances dans la ListView.

Les docs pour la fibre changements qui ajoute cet avertissement dire

Mise en page de la performance: Trouve LinearLayouts avec des poids où vous devriez jeu android:baselineAligned="false" pour de meilleures performances, et aussi trouve des cas où vous avez imbriqué poids qui peut causer de la performance problèmes.

Quelqu'un peut-il expliquer pourquoi cela améliore les performances, en particulier lorsque le poids est impliqué?

160voto

Nima Points 2127

En affectant à `` , vous êtes empêchant le travail supplémentaire mise en page de votre application doit faire afin d’aligner les lignes de base pour ses enfants, qui peut évidemment augmenter les performances. (Moins les opérations inutiles sur UI = > meilleures performances)

19voto

Nepster Points 893

comment android:baselineAligned="false" de l'aide . Il peut ne pas être la réponse, mais aider à se concept.

J'ai juste réussi à obtenir 3 éléments (icône, texte, bouton) centré à la verticale à l'horizontale LinearLayout.

Cela peut sembler simple, mais en réalité, en précisant android:gravity="center_vertical" comme LinearLayout attribut n'est pas assez icône est centré, mais le texte et le bouton ne le sont pas. C'est parce que (probablement) de texte ont une base de référence, et le centrage de l'algorithme il utilise à la place du "vrai" centre vertical. Mais ce qui est pire - bouton (qui est à côté de texte) est centrée à l'aide du texte de base!

La spécification d'android:baselineAligned="false" dans LinearLayout fait de cette éteint et tout les centres correctement.

14voto

boiledwater Points 995
<pre><code></code><p><a href="https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/LinearLayout.java#L1032">https://github.com/Android/platform_frameworks_base/BLOB/Master/Core/Java/Android/widget/LinearLayout.Java#L1032</a></p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X