PagerSlidingTab + ViewPager 是现在比较常见的控件组合(或者说是本人用的比较多的一种...),虽说它提供的接口已经比较完善,但难免还是不能满足所有需
求,最近就碰上了一个需求,需要指定tab的宽度,PagerSlidingTab暂时还未提供这个接口,那就自己写一个吧~
PagerSlingTab提供了一个叫“shouldExpand”的布尔类型的属性,如果是true,那么会按照tab的个数自动填充布局,相当于每个tab的权重为1,如果false,则
wrap_content,说白了就是设置一下tab的layoutParams,那么要改变宽度的话,直接设置他的layoutParams不就OK了嘛!
public void setTabLayoutParams(int width){
if(shouldExpand){
expandedTabLayoutParams = new LinearLayout.LayoutParams(width, LayoutParams.MATCH_PARENT);
}else{
defaultTabLayoutParams = new LinearLayout.LayoutParams(width,LayoutParams.MATCH_PARENT);
}
invalidate();
}
just like this,搞定!