ViewPager的用法

代码如下所示:

public class MainActivity extends Activity {
    private ViewPager viewPager;
    private List<View>list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager= (ViewPager) findViewById(R.id.viewpager);
        list=new ArrayList<View>();
        list.add(getLayoutInflater().inflate(R.layout.viewpager,null));
        list.add(getLayoutInflater().inflate(R.layout.viewpager2,null));
        viewPager.setAdapter(new ViewPagerShiPei(list));
    }
    class ViewPagerShiPei extends PagerAdapter{
        private List<View>list;
        public ViewPagerShiPei(List<View>list) {
            this.list=list;
        }

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view==object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            container.addView(list.get(position));
            return list.get(position);
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
            container.removeView(list.get(position));
        }
    }
}

在activity_main.xml文件中

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

    </android.support.v4.view.ViewPager>
</LinearLayout>

补充一下,后来再用viewpager,用上面的代码就报错了,需要用下面的代码,代码如下:

public class ShiYan extends AppCompatActivity {
    @BindView(R.id.viewpager)
    ViewPager viewPager;
    private List<View> list;
    private String[] s = {"第一个", "第二个", "第三个"};

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.shiyan);
        ButterKnife.bind(this);
        
        list = new ArrayList<>();
        list.add(View.inflate(ShiYan.this, R.layout.viewpager, null));
        list.add(View.inflate(ShiYan.this, R.layout.viewpager, null));
        list.add(View.inflate(ShiYan.this, R.layout.viewpager, null));
        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return list.size();
            }

            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                container.addView(list.get(position));
                return list.get(position);
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView((View) object);
            }
        });
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,679评论 25 708
  • ViewPager简介ViewPager是一个允许使用者左右滑动数据页面的布局管理器,通过一个适配器(PagerA...
    李俊的博客阅读 2,333评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • 我刚刚毕业的时候,就是父母工资总合的4倍,这到底有多牛? 1990年,卖一台品牌电脑,可以赚2、3台,即使是杂牌组...
    万能的老J阅读 5,443评论 3 4
  • 小赌怡情,大赌伤身。闲暇时光,约三五好友,小摸几把,即愉悦身心,又增进友谊,本是极其惬意的事情。 老然也曾手痒痒,...
    老然微言阅读 332评论 2 3