关于ViewPager的初步理解

来源:互联网 发布:迅捷pdf合并软件 编辑:程序博客网 时间:2024/04/30 08:08

  关于ViewPager我只是做了简单最基本的功能。我看了好多资料,关于ViewPager以后的用处会非常大,在这里先了解一下什么是ViewPager。

关于ViewPager就是手指滑动时,能从一个界面滑动到另一个界面。效果如下:





下面是Layoutde 的代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >   <android.support.v4.view.ViewPager       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_gravity="center"       android:id="@+id/pager"       >       <android.support.v4.view.PagerTabStrip            android:layout_width="wrap_content"         android:layout_height="wrap_content"           android:layout_gravity="top"           android:id="@+id/tab"           >           </android.support.v4.view.PagerTabStrip></android.support.v4.view.ViewPager></LinearLayout>



下面是Activity的代码:

package com.example.viewpager;import java.util.ArrayList;import java.util.List;import com.example.tab.R;import android.graphics.Color;import android.os.Bundle;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.PagerTitleStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.ActionBarActivity;import android.view.View;public class test_viewpager extends ActionBarActivity{private List<View>viewList;private ViewPager pager;private List<String> titleList;private PagerTabStrip tab;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.viewpager_main);//定义一个类型为View型的数组viewList = new ArrayList<View>();//把相应的布局转化为View型View view1 = View.inflate(getApplicationContext(), R.layout.viewpager1, null);View view2 = View.inflate(getApplicationContext(), R.layout.viewpager2, null);View view3 = View.inflate(getApplicationContext(), R.layout.viewpager3, null);//把转化过的布局一个个添加到viewList数组里viewList.add(view1);viewList.add(view2);viewList.add(view3);//为每一个view定义标题,把这些标题放入到数组里面titleList = new ArrayList<String>();//为页卡增加标题titleList.add("第一页");titleList.add("第二页");titleList.add("第三页");//为PagerTabStrip设置一些属性,为标题设置一些属性tab = (PagerTabStrip) findViewById(R.id.tab);tab.setBackgroundColor(Color.GRAY);//为标题设置背景颜色tab.setTextColor(Color.RED);//设置 标题的字体颜色tab.setDrawFullUnderline(false);//标题框中没有最下面的一道线tab.setTabIndicatorColor(Color.BLUE);//设置滑动时那个小线线//创建pageradapter适配器MyAdapter adapter = new MyAdapter(viewList,titleList);//这里用的适配器是我们自定义的适配器//初始化ViewPagerpager = (ViewPager) findViewById(R.id.pager);//ViewPager加载适配器pager.setAdapter(adapter);}}




下面是自定义Adapter的代码:



package com.example.viewpager;import java.util.List;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;public class MyAdapter extends PagerAdapter{private List<View>viewList;private List<String>titleList;public MyAdapter(List<View>viewList,List<String>titleList){this.viewList = viewList;this.titleList = titleList;}/* * 返回的是页卡的数量 * */@Overridepublic int getCount() {// TODO Auto-generated method stubreturn viewList.size();}@Override/* * View是否来自于对象 * */public boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}/* * 实例化一个页卡 *  * */@Overridepublic Object instantiateItem(ViewGroup container, int position) {// TODO Auto-generated method stubcontainer.addView(viewList.get(position));return viewList.get(position);}@Override/* * 销毁一个页卡 * */public void destroyItem(ViewGroup container, int position, Object object) {// TODO Auto-generated method stubcontainer.removeView(viewList.get(position));}/* * 设置ViewPager页卡的标题 *  * */@Overridepublic CharSequence getPageTitle(int position) {// TODO Auto-generated method stubreturn titleList.get(position);}}



0 0
原创粉丝点击