zoukankan      html  css  js  c++  java
  • android viewPager 的基本使用

    使用viewpager时一般需要使用PagerTitleStrip类和PagerTabStrip 类,PagerTitleStrip类继承自ViewGroup类,

    而PagerTabStrip类继承PagerTitleStrip类,这两 个类是容器类。注意,在定义XML的layout的时候,这两个类必须是ViewPager的子标签,不然会出错。

    布局文件XML:

    <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=".MainActivity" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
    
            <android.support.v4.view.PagerTabStrip
                android:id="@+id/tabstrip"
                android:layout_width="wrap_content"
                android:layout_height="30dip"
                android:gravity="center" />
        </android.support.v4.view.ViewPager>
    
    </RelativeLayout>
    

     MainActivity.class:

    public class MainActivity extends AppCompatActivity {
    
        private ViewPager pager;
        private PagerTabStrip tabStrip;
        private List<View> viewContainter = new ArrayList<View>();
        private List<String> titleContainer = new ArrayList<String>();
        private String TAG = "MainActivity";
    
        @SuppressLint("ResourceAsColor")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            pager = (ViewPager) findViewById(R.id.viewpager);
            tabStrip = (PagerTabStrip) findViewById(R.id.tabstrip);
    
            View view1 = LayoutInflater.from(this).inflate(R.layout.tab_item1, null);
            View view2 = LayoutInflater.from(this).inflate(R.layout.tab_item2, null);
            View view3 = LayoutInflater.from(this).inflate(R.layout.tab_item3, null);
            View view4 = LayoutInflater.from(this).inflate(R.layout.tab_item4, null);
    
            //viewpager开始添加view
            viewContainter.add(view1);
            viewContainter.add(view2);
            viewContainter.add(view3);
            viewContainter.add(view4);
    
            //页签项
            titleContainer.add("title1");
            titleContainer.add("title2");
            titleContainer.add("title3");
            titleContainer.add("title4");
    
            //设置ViewPager控件的适配器
            pager.setAdapter(new PagerAdapter() {
    
                //viewpager中的组件数量
                @Override
                public int getCount() {
                    return viewContainter.size();
                }
    
                @Override
                public boolean isViewFromObject(View arg0, Object arg1) {
                    return arg0 == arg1;
                }
    
                //销毁position位置的界面
                @Override
                public void destroyItem(ViewGroup container, int position,
                                        Object object) {
                    ((ViewPager) container).removeView(viewContainter.get(position));
                }
    
                //初始化position位置的界面,每次滑动的时候生成的组件
                @Override
                public Object instantiateItem(ViewGroup container, int position) {
                    ((ViewPager) container).addView(viewContainter.get(position));
                    return viewContainter.get(position);
                }
    
                @Override
                public CharSequence getPageTitle(int position) {
                    return titleContainer.get(position);
                }
    
                @Override
                public int getItemPosition(Object object) {
                    return super.getItemPosition(object);
                }
    
            });
    
            pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrollStateChanged(int arg0) {
    
                }
    
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
    
                }
    
                @Override
                public void onPageSelected(int arg0) {
    
                }
            });
    
        }
    
    }
    
  • 相关阅读:
    互联网实习笔记之shell笔记
    互联网实习笔记之30天总结
    记被论文排版虐的一天
    大论文排版技巧
    Matlab2014a使用VS2015混合编译
    腾讯云服务器创建swap空间
    使用vs2015开发linux:Ubuntu程序
    使用VS2015远程GDB调试
    nullptr、NULL、null和0
    《将博客搬至CSDN》
  • 原文地址:https://www.cnblogs.com/IT-lss/p/5673821.html
Copyright © 2011-2022 走看看