viewPager引導頁能夠方便的實現頁面的左右滑動的切換,能夠做爲應用程序的引導頁,也能夠做爲整個應用程序的框架。android
首先建立引導頁的首頁:框架
public class MainActivity extends AppCompatActivity { private ViewPager viewPager ; // private ViewPageAdapter viewPageAdapter ; private List<View> views ; //View集合,左右滑動的實際上是一個View的集合 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews(){ LayoutInflater inflater = LayoutInflater.from(this); views = new ArrayList<>(); //加添View的view。 views.add(inflater.inflate(R.layout.one,null)); views.add(inflater.inflate(R.layout.two,null)); views.add(inflater.inflate(R.layout.three,null)); //爲ViewPager添加適配器 ViewPageAdapter adapter = new ViewPageAdapter(views,this); viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(adapter); } }
ViewPager 的適配器類ide
public class ViewPageAdapter extends PagerAdapter { private List<View> views ; private Context context ; public ViewPageAdapter(List<View> views, Context context) { this.views = views; this.context = context; } //返回Views的條目總數 @Override public int getCount() { if (views!=null){ return views.size(); } return 0 ; } //刪除頁面 @Override public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(views.get(position)); } //初始化界面 @Override public Object instantiateItem(View arg0, int position) { ((ViewPager) arg0).addView(views.get(position), 0); return views.get(position); } //判斷是不是須要的View對象 @Override public boolean isViewFromObject(View view, Object object) { return (view==object); } }
activity_main.xml:this
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.it123.pageadapter.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#fff"> </android.support.v4.view.ViewPager> </RelativeLayout>
one.xmlcode
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:src="@mipmap/ic_launcher" android:layout_gravity="center_horizontal" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="第一頁" android:id="@+id/textView" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout>
two.xml 和 three.xml 的代碼和one.xml 的代碼一致。不在重複。 運行便可實現左右滑動切換的效果xml