標籤:
public void requestLayout ()Since: API Level 1
Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.
我們可以理解為重新布局了一下view;
用途:有 時我們在改變一個view 的內容之後 可能會造成顯示出現錯誤,比如寫ListView的時候 重用convertview中的某個TextView 可能因為前後填入的text長度不同而造成顯示出錯,此時我們可以在改變內容之後調用requestLayout方法加以解決。
上面這段 話我摘抄別人的部落格了,只是這個方法解決了我一個問題,這個問題是同一個bitmapdrawable對象,在listview中顯示的時候,由於每個 item中的imageview大小都不一樣,所以當同一個bitmapdrawable對象在imageview-A顯示(正常),當顯示到 imageview-B顯示(正常),但是當listview滾動到A的時候,圖片變小了,不清楚怎麼回事?
我查了 bitmapdrawable的源碼,也看了imageview.setImageDrawable的源碼,知道bitmapdrawable會儲存一些 屬性,但是沒有找到解決的方案,有個方案,就是重新new個bitmapdrawable對象,因為imageview.setImageBitmap方 法源碼中就是每次都new個bitmapdrawable來顯示的。但是當我發現requestLayout()方法的時候,在每次調用這個方法 setImageDrawable之前調用imageview的requestLayout方法,居然顯示正常了!!!
變小的原因不清楚,後面慢慢查,至少現在有個解決方案哈。
不好意思,這個問題通過上面這個方法沒有解決!哎!只能重新拷貝新的bitmap產生新的drawable對象才行。
Android view的requestLayout()