1. 程式人生 > >ViewPager高度自適應?height=wrap_content 無效、固定高度適配性差

ViewPager高度自適應?height=wrap_content 無效、固定高度適配性差

        寫的幾個專案基本都有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); }