首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PagerSlidingTabStrip: ViewPager徽章号码

PagerSlidingTabStrip: ViewPager徽章号码
EN

Stack Overflow用户
提问于 2013-12-16 22:20:01
回答 2查看 1.9K关注 0票数 0

我可以把徽章号码放在Button等上,但是有什么例子可以把徽章号码放在视图传呼机上吗?对于按钮,我正在创建一个具有适当背景资源的xml,等等,但我无法找到将其放在PagerSlidingTabStrip上的任何方法。

代码语言:javascript
复制
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="2dp"
                android:layout_marginTop="2dp"
                android:background="@drawable/badge"
                android:gravity="center"
                android:paddingLeft="2dp"
                android:paddingRight="2dp"
                android:text="2"
                android:textColor="@color/WHITE"
                android:textSize="12sp"
                android:textStyle="bold"
                android:visibility="gone" />

我首先将值设置为gone,并在需要时显示。有什么方法可以用视图传呼机来完成吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-27 17:51:40

您应该对PagerSlidingTabStrip做一个小的修改。

将这段代码插入PagerSlidingTabStrip类:

代码语言:javascript
复制
public LinearLayout getTabsContainer(){
return tabsContainer;
}

现在您可以通过以下方式访问选项卡视图:

View currentTabView = pagerSlidingTabStrip.getTabsContainer().getChildAt(currentPosition);

您可以轻松地使用https://github.com/jgilfelt/android-viewbadger,如下所示:

In MainActivity

public static View currentTab;

private PagerSlidingTabStrip pagerSlidingTabStrip;

代码语言:javascript
复制
@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            currentTab = pagerSlidingTabStrip.getTabsContainer().getChildAt(0);
            return firstFragment;
        case 1:
             currentTab = pagerSlidingTabStrip.getTabsContainer().getChildAt(1);
             return secondFragment;
        case 2:
             currentTab = pagerSlidingTabStrip.getTabsContainer().getChildAt(2);
             return thirdFragment; 
       } 
        return null;
}

片段中的

代码语言:javascript
复制
BadgeView badge = new BadgeView(getActivity(), MainActivity.currentTab);
badge.setText("1"); //Whatever value you should add
badge.show();
票数 7
EN

Stack Overflow用户

发布于 2015-02-01 12:51:23

Renan的解决方案是正确的,但是如果您的xml中app:pstsShouldExpand="true“,它将移除选项卡图标。该解决方案将expandedTabLayoutParams中的“PagerSlidingTabStrip.java”参数更改如下:

代码语言:javascript
复制
expandedTabLayoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20622107

复制
相关文章

相似问题

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