zoukankan      html  css  js  c++  java
  • view的requestLayout()方法

    view的requestLayout()方法 - lonely_fireworks的专栏 - 博客频道 - CSDN.NET

    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对象才行。

  • 相关阅读:
    背水一战 Windows 10 (26)
    背水一战 Windows 10 (25)
    背水一战 Windows 10 (24)
    背水一战 Windows 10 (23)
    背水一战 Windows 10 (22)
    背水一战 Windows 10 (21)
    背水一战 Windows 10 (20)
    背水一战 Windows 10 (19)
    背水一战 Windows 10 (18)
    背水一战 Windows 10 (17)
  • 原文地址:https://www.cnblogs.com/seven1979/p/4369527.html
Copyright © 2011-2022 走看看