亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述android解决Viewpager设置高度为wrap_content无效的方法相关的知识,希望能为你提供帮助。
今天发现设置viewpager高度为wrap_content时并没作用。stackoverflow给出了解决方式,就是自己定义viewpager,重写onMesure()方法:
【android解决Viewpager设置高度为wrap_content无效的方法】
public class WrapContentHeightViewPager extends ViewPager {/** * Constructor * * @param context the context */ public WrapContentHeightViewPager(Context context) { super(context); }/** * Constructor * * @param context the context * @param attrs the attribute set */ public WrapContentHeightViewPager(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); }}
使用的时候用WrapContentHeightViewPager取代viewpager就ok了
推荐阅读
- Win10系统常用服务管理器技巧如何打开?
- Android中 Bitmap和Drawable相互转换的方法
- Windows Server AppFabric分布式缓存研究
- [Android Studio 权威教程]配置出“NB”的Android Studio
- Appnium+C#+Winform自动化测试系列前言
- Android 5.x Theme 与 ToolBar 实战
- Android学习之——优化篇
- Android各种Adapter用法
- app模块设计