2011-03-02 21 views
1

我有一個包含每個「頁」一RelativeLayout的一個發射狀的側滾動定製的ViewGroup。在這個RelativeLayout中,我有一些其他視圖,它們在onMeasure()被調用時記錄。 當我翻到另一頁時,onMeasure被每個視圖調用六次。我已經消除了一些TextViews,因爲它們在文本更改時請求佈局傳遞,但我找不到佈局請求的其他原因。找到一個佈局請求的原因在一個ViewGroup

有誰知道一招,找到病因了一個ViewGroup內佈局的要求?

與此相關的,沒有任何人知道一個把戲,以確保TextViews別哭泣的佈局請求文本的變化是什麼時候?有些提示埋在了源代碼中(第5500行的http://codesearch.google.com/codesearch/p?hl=en#uX1GffpyOZk/core/java/android/widget/TextView.java&q=package:android.git.kernel.org%20file:android/widget/TextView.java&sa=N&cd=1&ct=rc),但我無法實現。

謝謝!

回答

2

的TextView需要的佈局通過當文本的變化,你不能真正解決這個問題。

+0

感謝提示羅曼。你知道檢查佈局請求原因的方法嗎?我已經刪除了所有的TextView更新並仍然有兩個請求。 – 2011-03-02 20:10:54

+3

只需在最高級別的requestLayout()中放置一個斷點,然後查看堆棧(也可以從代碼中轉儲堆棧)。 – 2011-03-02 21:12:54

0

我在1個FPS(各)更新2個TextViews,並且仍然是主要的線程是使用更多的CPU然後我GLSurfaceView ...

實際上設置一個固定的寬度或者與android:layout_widthandroid:ems停止佈局的請求。您可能還想使用setText(char[] text, int start, int len)而不是setText(CharSequence)以避免創建字符串。