我可以把徽章号码放在Button等上,但是有什么例子可以把徽章号码放在视图传呼机上吗?对于按钮,我正在创建一个具有适当背景资源的xml,等等,但我无法找到将其放在PagerSlidingTabStrip上的任何方法。
<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,并在需要时显示。有什么方法可以用视图传呼机来完成吗?
发布于 2014-02-27 17:51:40
您应该对PagerSlidingTabStrip做一个小的修改。
将这段代码插入PagerSlidingTabStrip类:
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;
@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;
}片段中的,
BadgeView badge = new BadgeView(getActivity(), MainActivity.currentTab);
badge.setText("1"); //Whatever value you should add
badge.show();发布于 2015-02-01 12:51:23
Renan的解决方案是正确的,但是如果您的xml中app:pstsShouldExpand="true“,它将移除选项卡图标。该解决方案将expandedTabLayoutParams中的“PagerSlidingTabStrip.java”参数更改如下:
expandedTabLayoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
https://stackoverflow.com/questions/20622107
复制相似问题