Android开源控件ViewFlow学习
这里简单介绍一点:抛出IllegalStateException:
"ViewFlow can only be used in EXACTLY mode."
首先要明确ViewFlow的好处所在:(1).ViewFlow比较适合动态大小,如图片的个数由后台决定,发多少就显示多少,这是用ViewPager就不是很合适。
( 2) ViewFlow的轮播滚动效果非常平滑,过渡非常友好,而且支持循环。
使用ViewFlow的时候,注意只能用在大小确定的模式中,即”ViewFlow can only be used in EXACTLY mode“。
此时,如果自己的布局是不确定大小的,可能会出错,有个不是很好的解决办法是,设置宽填充父控件,高度设置固定值。
如果还有问题:可以在onMeasure()方法中做如下修改:(仅供参考)
将如下代码修改:
if (heightMode != MeasureSpec.EXACTLY && !isInEditMode()) { throw new IllegalStateException( "ViewFlow can only be used in EXACTLY mode."); }
屏蔽掉第一句:super.onMeasure(widthMeasureSpec, heightMeasureSpec);
修改if判断为如下:
heightMeasureSpec = MeasureSpec.makeMeasureSpec(CommonUtil.dip2px(mContext, 150), MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec);
其他的地方自己可以在读懂代码的基础上修改。
这里是ViewFlow 源代码下载地址:ViewFlow源码下载地址