Viewpager的使用简单认识(1)

viewpager的是为了 实现左右滑动切换页面的效果, 常用于与导航栏和 广告栏
ViewPager+Fragment配合使用。
1.ViewPager类需要一个PagerAdapter适配器类给它提供数据。
2.Viewpager 继承自viewgroup是一个容器类。

1.简单使用

(1)导入布局 viewpager控件存在v4jar包里 使用的时候需要先导入找到控件android.support.v4.view.ViewPager
(2)PageAdapter 必须重写的四个函数:

 int getCount()  \\返回要滑动的VIew的个数
 boolean isViewFromObject(View arg0, Object arg1) \\ view和object是否有关联 

Object instantiateItem(ViewGroup container, int position)
   第一:将当前视图添加到container中,
   第二:返回当前View

void destroyItem(ViewGroup container, int position,Object object)
   从当前container中删除指定位置(position)的View;

先看效果为了方便3个view的颜色分别是黄绿蓝 为了看起来明显一些。第一个界面效果
第二个界面效果第三个界面效果

1.布局

<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"
tools:context="com.example.viewpagerdemo.MainActivity$PlaceholderFragment">
<android.support.v4.view.ViewPager
android:id="@+id/viewpger"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content" />
</RelativeLayout>
文件

(2) MainActivity 里的代码

public class MainActivity extends ActionBarActivity {
    private ViewPager viewPager;//viewpager控件
    private View view1, view2, view3;//3个view存放3个布局文件
    PagerAdapter pagerAdapter;//pageradpter必须要重写的适配器 
    private List<View> viewlist;//把布局存放在集合里边作为数据源

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        viewPager = (ViewPager)findViewById(R.id.viewpger);//找控件
        LayoutInflater inflater = getLayoutInflater();//布局加载器
        view1 = inflater.inflate(R.layout.first_layout, null);//
        view2 = inflater.inflate(R.layout.second_layout, null);
        view3 = inflater.inflate(R.layout.three_layout, null);
        viewlist = new ArrayList<View>(); // 存放View的集合
        viewlist.add(view1);
        viewlist.add(view2);
        viewlist.add(view3);

        pagerAdapter = new PagerAdapter() {
                //初始化绑定数据
            @Override
            public Object instantiateItem(View container, int position) {
                // TODO Auto-generated method stub
                ((ViewGroup) container).addView(viewlist.get(position));

                return viewlist.get(position);
            }

               // 滑动切换的时候销毁当前的组件
            @Override
            public void destroyItem(View container, int position, Object object) {
                // TODO Auto-generated method stub
                ((ViewPager) container).removeView(viewlist.get(position));
            }

              // 每次滑动的时候生成的组件
            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                // TODO Auto-generated method stub
                return arg0 == arg1;
            }
              // viewpager中的组件数量
            @Override
            public int getCount() { 
                // TODO Auto-generated method stub
                return viewlist.size();
            }
        };
        viewPager.setAdapter(pagerAdapter);//设置adpter
    }

}

猜你喜欢

转载自blog.csdn.net/Jsonuu/article/details/51882798