Android view的requestLayout()

來源:互聯網
上載者:User

標籤:

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()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.