【问题标题】:Center Logo Between Two Tabs两个选项卡之间的中心徽标
【发布时间】:2017-10-21 14:22:16
【问题描述】:

Here the vector of what i'm trying to do

这两个标签之间会有 2 个标签和一个图像视图或其他东西,并且徽标应该是不可点击的。

我几乎尝试了所有方法,但都失败了。

谁知道怎么做?

代码:

        TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs2);
        tabLayout.setupWithViewPager(mViewPager);
        tabLayout.getTabAt(1).setIcon(R.drawable.logo);



    }

    public class SectionsPagerAdapter extends FragmentPagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            switch (position) {
                case 0:

                    return new LeaderBoard();

                case 1:

                    return new Logo();

                case 2:

                    return new Recent_Post();

                default:

                    return null;
            }

        }

        @Override
        public int getCount() {
            // Show 3 total pages.
            return 3;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            switch (position) {
                case 0:
                    return "LeaderBoard";
                case 1:
                    return "";
                case 2:
                    return "Recent Posts";
            }
            return null;
        }
    }

【问题讨论】:

  • 显示您的代码以便我们了解您从哪里开始?你到达了多远
  • 我不能分享代码,因为它的行太多,但我可以分享这个概念。我添加了另一个选项卡,现在有 3 个选项卡,所以中间选项卡只包含徽标而不是标题中的文本,但问题是它创建了另一个我不想要的视图,中间选项卡不应该是可点击的跨度>
  • 你的问题很容易做到。所以我可以通过代码回答。 (这就是我们在 StackOverflow 中的做法)否则它将被否决并删除。您必须显示您尝试了多少,以便我们可以向您展示要修改的内容。如果你使用的话,至少粘贴tablayout
  • 查看我已添加代码
  • 在 xml tablayout 上也显示一些代码。显示一些xml 的标签布局。 id 为 R.id.tabs2 的那个。如果打扰了,我很抱歉。

标签: android tabs imageview android-tablayout tabview


【解决方案1】:

我已经通过在彼此之间切换选项卡解决了我的问题,一些计算。

int currentScreen = 0;

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                if (position == 1) {
                    if(currentScreen == 0) {
                        mViewPager.setCurrentItem(2);
                        currentScreen = 2;
                    }else{
                        mViewPager.setCurrentItem(0);
                        currentScreen = 0;
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });

【讨论】:

  • 恭喜您解决了自己的问题!让我给你你的第一票!
猜你喜欢
  • 2015-06-29
  • 2016-08-16
  • 1970-01-01
  • 2015-02-16
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多