• Android Tab -- 使用ViewPager、PagerTitleStrip/PagerTabStrip来实现


    原文地址http://blog.csdn.net/crazy1235/article/details/42678877

    效果:滑动切换;点击标签切换。

    代码:https://github.com/ldb-github/Layout_Tab

    1、使用ViewPager和PagerTabStrip/PagerTitleStrip进行布局。

    <?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:id="@+id/fifth_vp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center">
    
            <android.support.v4.view.PagerTabStrip
                android:id="@+id/fifth_strip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#7EC0EE"
                android:padding="10dp"/>
    
        </android.support.v4.view.ViewPager>
    </LinearLayout>
    viewpager_pagertitle_pagertab.xml

    1、要实现PagerAdapter的getPageTitle()方法,此方法提供了标签名称。

    2、PaperTabStrip是PagerTitleStrip的子类,它添加了指示器功能,也就是标签下面的小矩阵。

    public class ViewPagerAndPagerTitleOrPagerTabActivity extends Activity{
    
        // viewpager
        private ViewPager viewPager;
        // viewpager的标题 使用PagerTitleStrip只需要把Lyaout文件中的PagerTabStrip改为PagerTitleStrip
        private PagerTitleStrip titleStrip;
        // viewpager的指示器
        private PagerTabStrip tabStrip;
        // view集合
        private List<View> viewList;
        // 标题集合
        private List<String> titleList;
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.viewpager_pagertitle_pagertab);
    
            init();
        }
    
        private void init(){
            viewList = new ArrayList<>();
            LayoutInflater inflater = getLayoutInflater();
            View view = inflater.inflate(R.layout.viewpager_pageradapter_tab1, null);
            viewList.add(view);
            view = inflater.inflate(R.layout.viewpager_pageradapter_tab2, null);
            viewList.add(view);
            view = inflater.inflate(R.layout.viewpager_pageradapter_tab3, null);
            viewList.add(view);
    
            titleList = new ArrayList<>();
            titleList.add("标题1");
            titleList.add("标题2");
            titleList.add("标题3");
    
            initViewPager();
        }
        private void initViewPager(){
            viewPager = (ViewPager) findViewById(R.id.fifth_vp);
            viewPager.setAdapter(pagerAdapter);
    
            // 修改指示器的颜色
    //        tabStrip = (PagerTabStrip) findViewById(R.id.fifth_strip);
    //        tabStrip.setTabIndicatorColor(Color.RED);
    
        }
    
        /**
         * 适配器
         */
        PagerAdapter pagerAdapter = new PagerAdapter() {
            @Override
            public int getCount() {
                return viewList.size();
            }
    
            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }
    
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                container.addView(viewList.get(position));
                return viewList.get(position);
            }
    
            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView(viewList.get(position));
            }
    
            @Override
            public CharSequence getPageTitle(int position) {
                return titleList.get(position);
            }
        };
    }
    ViewPagerAndPagerTitleOrPagerTabActivity.java
  • 相关阅读:
    cnblog项目--20190309
    django js引入失效问题
    Python老男孩 day16 函数(六) 匿名函数
    Python老男孩 day16 函数(五) 函数的作用域
    Python老男孩 day15 函数(四) 递归
    Python老男孩 day15 函数(三) 前向引用之'函数即变量'
    Python老男孩 day15 函数(二) 局部变量与全局变量
    Python老男孩 day14 函数(一)
    Python老男孩 day14 字符串格式化
    Python老男孩 day14 集合
  • 原文地址:https://www.cnblogs.com/yarightok/p/5640874.html
Copyright © 2020-2023  润新知