ViewPager高度自適應

2021-07-22 19:16:16 字數 2114 閱讀 5742

轉至:

viewpager用的很多,主要用啦展示廣告條。可是高度卻不能自適應內容,總是會佔滿全屏,即使設定android:height="wrap_content"也是沒有用的。。

解決辦法其實網上有很多,但是個人感覺不是很好

xmlns:android=""

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/pager"

android:layout_width="fill_parent"

android:layout_height="0dp"

android:layout_weight="1.0" />

android:id="@+id/ivcursor"

android:layout_width="60dp"

android:layout_height="5dp"

android:scaletype="fitcenter"

android:src="@drawable/cursor" />

android:id="@+id/tabs"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

linearlayout>

這段**中,就用了weight來保證viewpager始終佔滿螢幕的剩餘空間。如果viewpager裡面的內容不需要那麼高,怎麼辦?這個方法就不行了。

這樣也不是很好。當伺服器為了保證在不同dpi的手機上,不被縮放,返回的高度也有可能不同,固定高度就造成了不能很好的適應這鐘變化。

在實際開發中,本人用的最多的就是通過layoutparmas動態改變viewpager的高度。

個人感覺這個方法不錯還比較簡單。

在給viewpager設定view的時候,通過獲取view的高度,動態的設定viewpager的高度等於view的高度,就ok了。

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);//使用這個params

這樣布局的時候,就會使用childview的高度了。思路和上面一樣。**如下:

import android.content.context;

import android.support.v4.view.viewpager;

import android.util.attributeset;

import android.view.view;

public

class

wrapcontentheightviewpager

extends

viewpager

public wrapcontentheightviewpager(context context, attributeset attrs)

@override

protected

void onmeasure(int widthmeasurespec, int heightmeasurespec)

heightmeasurespec = measurespec.makemeasurespec(height,

measurespec.exactly);

super.onmeasure(widthmeasurespec, heightmeasurespec);

}}

設定viewPager的高度為自適應

最近專案中需要viewpager的高度能夠自適應的動態改變,如果直接設定viewpager的高度為android layout height wrap content 並不起作用,viewpager會鋪滿父布局,通過閱讀viewpager的原始碼,發現建立乙個viewpager的子類並重寫onmea...

高度自適應

開發中遇到乙個問題,要求不管在多高的螢幕下,什麼都行 到底部的距離都應該和psd一致,flash裡面的問題 定義寬度 var psdwidth 750 定義高度 var psdheight 1448 獲取手機螢幕寬度 var w window.innerwidth document.document...

高度自適應

1.高度不去設定,或者高度設定auto 內容撐開父元素的高度。2.內容撐開父元素的高度 最小高度的設定 min height 3.浮動元素新增高度自適應 新增浮動元素的父元素沒有高度,會出現高度塌陷 1 給出現高度塌陷的元素新增 overflow hidden 原理 overflow hidden ...