【问题标题】:Get PagerSlidingTabStrip page title onPageSelected获取 PagerSlidingTabStrip 页面标题 onPageSelected
【发布时间】:2017-01-20 22:34:44
【问题描述】:

我正在尝试从 PagerSlidingTabStrip 中获取所选页面标题以显示在 toast 上。页面标题是从动态列表生成的。我可以使用以下方法获取当前页面位置以显示在吐司上:

         tabStrip.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            Toast.makeText(getActivity(), "Page position: " + position, Toast.LENGTH_SHORT).show();


        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

如何获取当前/选定的页面标题?

【问题讨论】:

    标签: android pagerslidingtabstrip


    【解决方案1】:

    为 PagerSlidingTabStrip(这是一个 viewpager 对吗?)创建您自己的适配器,它将管理标题和位置。

    ViewPager viewPager;
    ViewPagerAdapter vpAdapter;
    

    在mainActivity中

    viewPager = (ViewPager) findViewById(R.id.pager);
            vpAdapter = new ViewPagerAdapter(getSupportFragmentManager(), 2, this, clock, history);
    

    ViewPagerAdapter

    public class ViewPagerAdapter extends FragmentPagerAdapter {
        private int nTabs;
        private Context context;
        private Fragment fragment1, fragment2;
        private CharSequence[] titles;
    
        public ViewPagerAdapter(FragmentManager fm, int nTabs, Context context, Fragment fragment1, Fragment fragment2) {
            super(fm);
            this.fragment1= fragment1;
            this.fragment2= fragment2;
            this.context =context;
            this.nTabs = nTabs;
            titles = new CharSequence[]{context.getText(R.string.Title_tab1), context.getText(R.string.Title_tab2)};
        }
    
    
    
    
        @Override
        public Fragment getItem(int position) {
    
            switch (position) {
                case 0:
                    return fragment1;
                case 1:
                    return fragment2;
                default:
                    return fragment1;
            }
    
    
        }
    
    
        @Override
        public int getCount() {
            return nTabs;
        }
    
    
        @Override
        public CharSequence getPageTitle(int position) {
            return titles[position];
        }
    }
    

    别忘了在viewpager上设置适配器

    viewPager.setAdapter(vpAdapter);
    

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 2023-04-09
      • 1970-01-01
      • 2012-12-28
      • 2011-08-05
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多