Android開(kāi)發(fā)中ViewPager實(shí)現(xiàn)多頁(yè)面切換效果
ViewPager用于實(shí)現(xiàn)多頁(yè)面的切換效果,該類(lèi)存在于Google的兼容包里面,所以在引用時(shí)記得在BuilldPath中加入“Android-support-v4.jar”
首先必須知道:要使用ViewPager,必須要使用PagerAdapter為其提供數(shù)據(jù),也就必須實(shí)現(xiàn)下面四個(gè)方法:
1, getCount():ViewPager需要顯示的頁(yè)面?zhèn)€數(shù)
2,isViewFromObject(View view, Object object):view 是某個(gè)位置的頁(yè)面,Object是 instantiateItem 方法返回的。在這個(gè)方法需要判斷這頁(yè)面與Object對(duì)象是
否是同一個(gè)對(duì)象。
3,instantiateItem(ViewGroup Container, int position):生成對(duì)應(yīng)位置的頁(yè)面,container 就是顯示頁(yè)面的容器,position 就是對(duì)應(yīng)的頁(yè)面的序號(hào)
4,destroyItem(ViewGroup container, int position, Object object):將指定頁(yè)面銷(xiāo)毀
其實(shí)現(xiàn)代碼”如下”:
1,直接在布局文件中引入ViewPager
注意:必須要導(dǎo)入其依賴(lài)包android.support.v4
<android.support.v4.view.ViewPager android:id="@+id/up" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v4.view.ViewPager>
2,自定義一個(gè)適配器繼承于PagerAdapter,并覆寫(xiě)其四個(gè)方法
public class MyPagerAdapter extends PagerAdapter { private Context mContext; private int[] mResId; public MyPagerAdapter(Context context, int[] resId) { this.mContext = context; this.mResId = resId; } //設(shè)置內(nèi)部pager頁(yè)面的數(shù)量 @Override public int getCount() { return mResId.length; } @Override public boolean isViewFromObject(View view, Object object) { //判斷頁(yè)面與object是否是同一個(gè)對(duì)象 return view == object; } //必須重新覆寫(xiě)instaniateItem()和destroyItem()二個(gè)方法才能進(jìn)行展示 @Override public Object instantiateItem(ViewGroup container, int position) { View view = View.inflate(mContext, R.layout.item, null); View iv_item = view.findViewById(R.id.iv_item); iv_item.setBackgroundResource(mResId[position]); //必須將填充出來(lái)的view添加到ViewGroup中去,其container表示當(dāng)前頁(yè)面的容器 container.addView(view); return view; } //不使用的時(shí)候,將其銷(xiāo)毀 @Override public void destroyItem(ViewGroup container, int position, Object object) { //父類(lèi)實(shí)現(xiàn)的方法是拋異常(源碼) // super.destroyItem(container, position, object); container.removeView((View) object); } }
3,activity中實(shí)現(xiàn)其邏輯
public class MainActivity extends Activity { private ViewPager mUp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initeView(); initData(); } private void initData() { int[] resId = new int[]{R.drawable.shi, R.drawable.ni, R.drawable.haha}; //給ViewPager設(shè)置內(nèi)容 MyPagerAdapter adapter = new MyPagerAdapter(getApplicationContext(), resId); mUp.setAdapter(adapter); } private void initeView() { mUp = (ViewPager) findViewById(R.id.up); } }
以上所述是小編給大家介紹的Android開(kāi)發(fā)中ViewPager實(shí)現(xiàn)多頁(yè)面切換效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
android防止提交事件時(shí)觸發(fā)多個(gè)表單中的按鈕
這篇文章主要介紹了android防止提交事件時(shí)觸發(fā)多個(gè)表單中的按鈕,2015-05-05android自定義控件創(chuàng)建翻頁(yè)接口詳細(xì)代碼
這篇文章主要為大家介紹了android自定義控件創(chuàng)建翻頁(yè)接口詳細(xì)代碼,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-07-07android查看網(wǎng)絡(luò)圖片的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了android查看網(wǎng)絡(luò)圖片的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04MUI進(jìn)行APP混合開(kāi)發(fā)實(shí)現(xiàn)下拉刷新和上拉加載
給大家分析一下在用MUI進(jìn)行APP混合開(kāi)發(fā)的時(shí)候,如何用代碼實(shí)現(xiàn)下拉刷新和上拉加載這個(gè)普遍應(yīng)用的功能。2017-11-11Android 通知使用權(quán)(NotificationListenerService)的使用
這篇文章主要介紹了Android 通知使用權(quán)(NotificationListenerService)的使用的相關(guān)資料,需要的朋友可以參考下2017-06-06Android安裝應(yīng)用 INSTALL_FAILED_DEXOPT 問(wèn)題及解決辦法
這篇文章主要介紹了Android安裝應(yīng)用 INSTALL_FAILED_DEXOPT 解決辦法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Android Activity切換動(dòng)畫(huà)詳解及實(shí)例
這篇文章主要介紹了Android Activity切換動(dòng)畫(huà)overridePendingTransition詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03Android webview如何加載HTML,CSS等語(yǔ)言的示例
本篇文章主要介紹了Android webview如何加載HTML,CSS等語(yǔ)言的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Android 中Seekbar詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android 中Seekbar詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-04-04