當前位置:編程學習大全網 - 腳本源碼 - 怎麽給viewpager設置壹頁顯示不只壹個條目

怎麽給viewpager設置壹頁顯示不只壹個條目

1、效果圖

B:表示viewpager

A:表示viewpager的父布局

B和B之間的紅線:表示viewpager兩個item之間的間距。

2、原理

B距離其父布局左右都有間隔,然後讓B的item不局限於其內部,即能存在於B的布局之外。同樣,A也要允許B不局限於A內部(clipChildren屬性)。然後,設置viewpager兩個item之間的距離即可(setPageMargin)。最後不要忘記在viewpager滑動後更新A界面。

3、實踐

[java]?view plain?copy

<LinearLayout?xmlns:android=

android:layout_width="match_parent"

android:id="@+id/viewPagerContainer"

android:layout_height="match_parent"

android:background="#EEEEEE"

android:clipChildren="false"

android:orientation="vertical"?>

<android.support.v4.view.ViewPager

android:id="@+id/viewpage"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginLeft="80dp"

android:layout_marginRight="80dp"

android:clipChildren="false"?/>

</LinearLayout>

[java]?view plain?copy

<span?style="white-space:pre"></span>pager.setOnPageChangeListener(new?MyOnPageChangeListener());

<span?style="white-space:pre"></span>?

//?pageCount設置紅緩存的頁面數?

pager.setOffscreenPageLimit(3);

//?設置2張圖之前的間距。

pager.setPageMargin(20);

public?class?MyOnPageChangeListener?implements?OnPageChangeListener?{

@Override

public?void?onPageSelected(int?position)?{

}

@Override

public?void?onPageScrolled(int?position,?float?positionOffset,?int?positionOffsetPixels)?{

//?to?refresh?frameLayout

if?(viewPagerContainer?!=?null)?{

viewPagerContainer.invalidate();

}

}

@Override

public?void?onPageScrollStateChanged(int?arg0)?{

}

}

4、特例viewpager + fragment

setPageMargin必須是壹個負數,才能實現兩個item之間的間隔,否則兩個item會重合~~~去實踐吧,騷年。

5、註意事項

1.FragmentPagerAdapter和FragmentStaticPagerAdapter區別:第壹個不會銷毀fragment本身,只會銷毀其視圖。對於需要保存數據的很有用。

2.不要在Fragment中定義getView()來獲取對應的視圖,getView是其默認的方法,換壹個名稱吧(如:getFragView)。

3.要想動態更改fragment的視圖,那妳必須等到viewpager.setAdapter之後~否則無效果,因為fragment還未創建~

更多相關內容可參考資料www.viiboo.cn?

  • 上一篇:絕密使命電視劇劇情介紹40集
  • 下一篇:《魔女十八號》後來怎麽回事
  • copyright 2024編程學習大全網