Android開發(fā)中ViewPager實現(xiàn)多頁面切換效果
ViewPager用于實現(xiàn)多頁面的切換效果,該類存在于Google的兼容包里面,所以在引用時記得在BuilldPath中加入“Android-support-v4.jar”
首先必須知道:要使用ViewPager,必須要使用PagerAdapter為其提供數(shù)據(jù),也就必須實現(xiàn)下面四個方法:
1, getCount():ViewPager需要顯示的頁面?zhèn)€數(shù)
2,isViewFromObject(View view, Object object):view 是某個位置的頁面,Object是 instantiateItem 方法返回的。在這個方法需要判斷這頁面與Object對象是
否是同一個對象。
3,instantiateItem(ViewGroup Container, int position):生成對應(yīng)位置的頁面,container 就是顯示頁面的容器,position 就是對應(yīng)的頁面的序號
4,destroyItem(ViewGroup container, int position, Object object):將指定頁面銷毀
其實現(xiàn)代碼”如下”:
1,直接在布局文件中引入ViewPager
注意:必須要導入其依賴包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,自定義一個適配器繼承于PagerAdapter,并覆寫其四個方法
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頁面的數(shù)量
@Override
public int getCount() {
return mResId.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
//判斷頁面與object是否是同一個對象
return view == object;
}
//必須重新覆寫instaniateItem()和destroyItem()二個方法才能進行展示
@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]);
//必須將填充出來的view添加到ViewGroup中去,其container表示當前頁面的容器
container.addView(view);
return view;
}
//不使用的時候,將其銷毀
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
//父類實現(xiàn)的方法是拋異常(源碼)
// super.destroyItem(container, position, object);
container.removeView((View) object);
}
}
3,activity中實現(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開發(fā)中ViewPager實現(xiàn)多頁面切換效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android RecyclerView多類型布局卡片解決方案
這篇文章主要介紹了Android RecyclerView多類型布局卡片解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
Android Activity中使用Intent實現(xiàn)頁面跳轉(zhuǎn)與參數(shù)傳遞的方法
這篇文章主要介紹了Android Activity中使用Intent實現(xiàn)頁面跳轉(zhuǎn)與參數(shù)傳遞的方法,結(jié)合實例形式簡單分析了Android中的Activity交互操作相關(guān)技巧,需要的朋友可以參考下2016-07-07
AndroidStudio Gradle第三依賴統(tǒng)一管理的實現(xiàn)方法
這篇文章主要介紹了AndroidStudio Gradle第三依賴統(tǒng)一管理的實現(xiàn)方法,需要的朋友可以參考下2017-09-09
Android 開發(fā)系統(tǒng)自帶語音模塊應(yīng)用
本篇文章 主要介紹 Android 開發(fā)自帶語音模塊實例,在開發(fā)Android系統(tǒng)中會用到系統(tǒng)語音搜索模塊,這里給大家一個參考實例2016-07-07
Android使用Notification在狀態(tài)欄上顯示通知
這篇文章主要為大家詳細介紹了Android使用Notification在狀態(tài)欄上顯示通知,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12

