隐藏PagerTitleStrip中的相邻标签标题

时间:2015-02-17 15:35:34

标签: android android-fragments android-viewpager

所以我有一个显示标签的应用,你可以借助 ViewPager 水平滚动。

我的问题是:有没有办法隐藏 PagerTitleStrip 中的相邻标签

到目前为止,我无法动态或通过XML找到办法...

提前致谢!

P.S。 :我想张贴一张照片来说明这个问题,但似乎我的声誉太低了......对不起。

修改:在此图片上http://oi59.tinypic.com/2lm2ouh.jpg我想隐藏"今天" "前一天"文本。感谢CFlex的提示!

2 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但是我想添加一下我曾经用过的方法来节省别人的时间。

pagerTitleStrip.setNonPrimaryAlpha(0F);

答案 1 :(得分:0)

问题可能很老,但仍然很重要。我在并行编程两个传呼机时遇到了问题,在传呼机之间有下一个和前一个标签是很不容易的。但是有一个简单的解决方案:

  • addOnPageChangeListener(针对其中一个寻呼机),并使用寻呼机的当前位置填充您的片段或活动类的成员变量。

FragmentPagerAdapter中的功能getPageTitle(int position)实际上是要求页面标题在每次寻呼机改变位置时显示 ,而当前每次最多显示三遍。 ,上一个和下一个位置。

因此,现在您知道自己所处的位置,可以区分对上一个和下一个标题的请求,对于这些标题,您只需返回一个空字符串即可。对于原始问题:

private int mPagerPos = 0;
ViewPager mPager = findViewById(R.id.pager);

mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        mPagerPos = position;
    }

});

class FragmentAdapter extends FragmentPagerAdapter {
    @Override
    public CharSequence getPageTitle(int position) {
        if ( mPagerPos > position ) { return ""; } // title for previous tab
        else if ( mPagerPos == position ) { ... } // title for current tab
        else if ( mPagerPos < position ) { return ""; } // title for next tab
    }
}