2016-09-18 7 views
4

長い間、RelativeLayoutsは遅いと聞きました。私は、このタイプのレイアウトがonMeasureを2回呼び出し、それは何らかの理由でパフォーマンスが低下することを聞いて思い出しました。RelativeLayoutとネストされた線形レイアウトのパフォーマンス

しかし、私はudacityでパフォーマンスのコースを取っていると私は、次のビデオ見て:ここで

https://www.youtube.com/watch?time_continue=303&v=gK9tdeqqigE

を、インストラクターが使用して、同じのViewGroupのレンダリングコストを比較するために、階層ビューアツールを使用しました相対レイアウトと入れ子にされた線形レイアウト。

ビデオでは、relativelayoutが明確な勝者であり、これまで問題について私が聞いたことはすべて矛盾しています。

どのような状況でそれぞれのアプローチが優れているか理解してもらえますか?

ありがとうございました

+0

[Android:LinearLayoutよりも高価なRelativeLayoutですか?](http://stackoverflow.com/questions/4069037/android-is-a-relativelayout-more-expensive-than-a-linearlayout) – Suhaib

答えて

8

これは非常に幅広い質問です。単一の、簡単な答えはありません。 LinearLayoutは一般的にRelativeLayoutよりも簡単です(したがって高速です)、LinearLayoutは互いに重なり合うと問題のあるケースがあります。は同じ軸の重みがです。その後、スペースを繰り返し分割しなければなりません。そして、これはたくさんのレイアウト・パスを必要とします(これに対して、リント警告は非常に悪いです)。

このような場合を避ける場合でも、ネストされたLinearLayoutsでは、RelativeLayoutを使用するよりもビューの階層が深いので、LinearLayoutは高速ですが、ある時点でバランスが取れます。

したがって、すべてのパフォーマンスと同じことになります。絶対に確実な唯一の方法は、何が起こるかを測定して確認することです。

関連する問題