在Android是如何使用ViewPager
Android中的ViewPager有点像微信或qq等里面的滑动屏幕切换顶部的选项效果,其中附带有一条灰色的底线,且在选中的第一个选卡底部会出现一条深色的线。
ViewPager使用的数据源有两个形式:List<View>和List<Fragment>两种
下面来看一下,是如何实现它的效果的(以代码为例)
----------------------------------------------------------java代码部分---------------------------------------------------
MainActivity.java
1 package com.cn.viewpager; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.support.v4.view.ViewPager; 9 import android.view.View; 10 11 public class MainActivity extends Activity { 12 13 private List<View> viewList; 14 private ViewPager pager; 15 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 // TODO Auto-generated method stub 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.main); 21 View view1 = View.inflate(this, R.layout.view1, null); 22 View view2 = View.inflate(this, R.layout.view2, null); 23 View view3 = View.inflate(this, R.layout.view3, null); 24 View view4 = View.inflate(this, R.layout.view4, null); 25 26 viewList=new ArrayList<View>(); 27 viewList.add(view1); 28 viewList.add(view2); 29 viewList.add(view3); 30 viewList.add(view4); 31 32 pager=(ViewPager) findViewById(R.id.pager); 33 MyPagerAdapter adapter=new MyPagerAdapter(viewList); 34 pager.setAdapter(adapter); 35 36 } 37 }
MyPagerAdapter.java
1 package com.cn.viewpager; 2 3 import java.util.List; 4 5 import android.support.v4.view.PagerAdapter; 6 import android.view.View; 7 import android.view.ViewGroup; 8 9 public class MyPagerAdapter extends PagerAdapter{ 10 11 private List<View>viewList; 12 private List<String>titleList; 13 14 public MyPagerAdapter(List<View>viewList) 15 { 16 this.viewList=viewList; 17 this.titleList=titleList; 18 } 19 20 //返回所有视图的数量 21 @Override 22 public int getCount() { 23 // TODO Auto-generated method stub 24 return viewList.size(); 25 } 26 27 //判断视图是否由对象产生 28 @Override 29 public boolean isViewFromObject(View arg0, Object arg1) { 30 // TODO Auto-generated method stub 31 return arg0==arg1; 32 } 33 34 //实例化页面 35 @Override 36 public Object instantiateItem(ViewGroup container, int position) { 37 // TODO Auto-generated method stub 38 container.addView(viewList.get(position)); 39 return viewList.get(position); 40 } 41 42 //删除页面 43 @Override 44 public void destroyItem(ViewGroup container, int position, Object object) { 45 // TODO Auto-generated method stub 46 container.removeView(viewList.get(position)); 47 } 48 49 }
--------------------------------------------------------------------------xml文件--------------------------------------------------------------
main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <android.support.v4.view.ViewPager 8 android:id="@+id/pager" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:layout_gravity="center" ></android.support.v4.view.ViewPager> 12 </LinearLayout>
view*.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <TextView 8 android:text="第一个界面" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 /> 12 13 </LinearLayout>
AndroidManifest.xml文件中的配置与一般的android配置一样。
时间:2014年10月5日 10:49:28,天气:晴,地市:gz-gy
浙公网安备 33010602011771号