ViewPager高度自適應?height=wrap_content 無效、固定高度適配性差
阿新 • • 發佈:2019-02-08
寫的幾個專案基本都有ViewPager實現Banner,最開始都是固定高度,讓服務端返回圖片比例控制一下(好低階)。。。
通過LayoutParmas動態改變ViewPager的高度
int viewPagerIndex = main.indexOf(viewPager); int childViewHeight = getChildViewHeight(); //獲取ViewPager的子View的高度。 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, childViewHeight );//這裡設定params的高度。 main.removeView(viewPager); main.addView(viewPager, viewPagerIndex , params);//使用這個param
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); }