首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PagerTitleStrip中隐藏相邻标签标题

在PagerTitleStrip中隐藏相邻标签标题
EN

Stack Overflow用户
提问于 2015-02-17 15:35:33
回答 2查看 534关注 0票数 1

所以我有一个显示标签的应用程序,你可以在ViewPager的帮助下水平滚动。

我的问题是:有什么方法可以让在PagerTitleStrip中隐藏相邻的标签标题

到目前为止,我一直无法找到一种方法来动态地或通过XML.

提前谢谢!

我想发一张照片来说明这个问题,但我的名声似乎太低了.真对不起。

编辑:在这张图片http://oi59.tinypic.com/2lm2ouh.jpg上,我想隐藏“今天”和“前一天”的文本。谢谢CFlex的提示!

EN

回答 2

Stack Overflow用户

发布于 2016-11-24 00:33:24

我知道这是老生常谈,但我想补充一下我以前用来节省别人时间的方法。

代码语言:javascript
复制
pagerTitleStrip.setNonPrimaryAlpha(0F);
票数 1
EN

Stack Overflow用户

发布于 2019-08-12 14:53:10

问题可能是老的,但仍然是相关的。我是在同时编写两个寻呼机的程序时遇到这个问题的,在那里,在寻呼机之间设置下一个和之前的标签是非常不雅观的。但有一个简单的解决办法:

  • addOnPageChangeListener用于一个寻呼机,并使用寻呼机的当前位置填充片段或活动类的成员变量。

FragmentPagerAdapter中是函数getPageTitle(int position),它实际上要求在寻呼机每次更改位置时显示页面标题,对于当前、前一个和下一个位置最多显示三次。

因此,现在您知道了您的位置,并可以区分哪些是对上一个和下一个标题的请求,对于这些,您可以返回一个空字符串。就原问题而言:

代码语言:javascript
复制
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
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28565115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档