假设我有多个列表,每个列表放在一个选项卡中,通过更改选项卡,VIEwPager的高度应该正确更改
我创建了一个自定义的VIEwPager并覆盖了onMeasure,但问题是VIEwPager会更快地创建下一个片段,当前片段(可见片段)从下一个片段测量值获得它的高度.@H_403_0@这是MyVIEwPager:
公共类MyVIEwPager扩展了VIEwPager {@H_403_0@
public MyVIEwPager(Context context) { super(context); } public MyVIEwPager(Context context, AttributeSet attrs) { super(context, attrs); } @OverrIDe protected voID onMeasure(int wIDthMeasureSpec, int heightmeasureSpec) { int height = 0; for(int i = 0; i < getChildCount(); i++) { VIEw child = getChildAt(i); child.measure(wIDthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UnspecIFIED)); int h = child.getMeasuredHeight(); if(h > height) height = h; } heightmeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); super.onMeasure(wIDthMeasureSpec, heightmeasureSpec); }}
@H_403_0@我也尝试触发MyVIEwPager的onMeasure方法,当片段像下面一样可见但没有任何变化.@H_403_0@@OverrIDepublic voID setUserVisibleHint(boolean isVisibletoUser) { super.setUserVisibleHint(isVisibletoUser); if (isVisibletoUser) { PostDetailsActivity activity = (PostDetailsActivity) getActivity(); activity.pagerParent.requestLayout(); activity.pagerParent.invalIDate(); }}
解决方法:
@H_403_0@我找到了一个很好的解决方案here如果有人想知道如何使VIEwPager动态地改变它的高度.@H_403_0@你也可以找到快速回答here如果你没时间看Git. 总结以上是内存溢出为你收集整理的具有动态高度的Android ViewPager全部内容,希望文章能够帮你解决具有动态高度的Android ViewPager所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)