android listview调用getview之后不掉用子view的onmeasure的问题

android listview调用getview之后不掉用子view的onmeasure的问题

问题描述:

我的listview里放的自定义view,高度会根据内容发生变化,在onmeasure里设置。

程序在一个android4.4的手机上正常,每次getview之后都会调用子view的onmeasure。

但是在一个6.0.1的手机上,getview之后就不再调用onmeasure了,
导致重用view的时候,大小不对。
该怎么解决啊?
在getview里面自己调measure,在4.4的手机上会重复调用,影响性能的吧。

listview复用view是系统自己的操作吧,你是不是布局写死了

listview是在setupChild里面调用getview的,里面通过needtomeasure判断是否调measure。

         final boolean isSelected = selected && shouldShowSelector();
        final boolean updateChildSelected = isSelected != child.isSelected();
        final int mode = mTouchMode;
        final boolean isPressed = mode > TOUCH_MODE_DOWN && mode < TOUCH_MODE_SCROLL &&
                mMotionPosition == position;
        final boolean updateChildPressed = isPressed != child.isPressed();
        final boolean needToMeasure = !recycled || updateChildSelected || child.isLayoutRequested();

4.4和6.0的系统 isLayoutRequest()的结果不一样