• 使用TabPageIndicator实现HorizontalScrollView效果


    /**
         * Tab标题
         */
        private static final String[] TITLE = new String[] { "头条", "房产", "另一面", "女人",
                                                            "财经", "数码", "情感", "科技" };

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //ViewPager的adapter
            FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());
            ViewPager pager = (ViewPager)findViewById(R.id.pager);
            pager.setAdapter(adapter);

            //实例化TabPageIndicator然后设置ViewPager与之关联
            TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
            indicator.setViewPager(pager);
            
            //如果我们要对ViewPager设置监听,用indicator设置就行了
            indicator.setOnPageChangeListener(new OnPageChangeListener() {
                
                @Override
                public void onPageSelected(int arg0) {
                    Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show();
                }
                
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    
                }
                
                @Override
                public void onPageScrollStateChanged(int arg0) {
                    
                }
            });
            
        }

        
        /**
         * ViewPager适配器
         * @author len
         *
         */
        class TabPageIndicatorAdapter extends FragmentPagerAdapter {
            public TabPageIndicatorAdapter(FragmentManager fm) {
                super(fm);
            }

            @Override
            public Fragment getItem(int position) {
                //新建一个Fragment来展示ViewPager item的内容,并传递参数
                Fragment fragment = new ItemFragment();  
                Bundle args = new Bundle();  
                args.putString("arg", TITLE[position]);  
                fragment.setArguments(args);  
                
                return fragment;
            }

            @Override
            public CharSequence getPageTitle(int position) {
                return TITLE[position % TITLE.length];
            }

            @Override
            public int getCount() {
                return TITLE.length;
            }
        }

  • 相关阅读:
    微信公众号之获取公众平台回复模板,根据关键字动态回复消息 ^
    微信公众号之获取用户信息 ^
    微信公众号之创建自定义菜单.net core 5.0 ^
    微信公众号关注/取消关注回调.net core 5.0 ^
    微信公众号之发送微信模板.net core 5.0 ^
    微信公众号之获取token ^
    Nmap网络扫面工具
    RSA密码算法
    后端返回支付宝HTML,如何使用.H5端调用支付宝支付
    一种把dump里连续的内存保存到文件的方法
  • 原文地址:https://www.cnblogs.com/cuizhe/p/5326886.html
Copyright © 2020-2023  润新知