老是大意忘记写Viewpager设置缓存数
问题:
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int count = getChildCount(); //实际应该是3,获取的是2 if (count > current) { View child = getChildAt(current); child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int h = child.getMeasuredHeight(); height = h; } heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); }
解决:
public void setData(List<TitlePageBar> data) { if (mTitelPageAdapter == null) { mTitelPageAdapter = new PageTitleAdapter(((FragmentActivity) getContext()).getSupportFragmentManager(), data); mViewPager.setAdapter(mTitelPageAdapter); mViewPager.setOffscreenPageLimit(data.size()); // ***这句很重要 init(); } else { mTitelPageAdapter.setData(data); init(); } }