PagerSlidingTabStrip选中顶部的标签行

时间:2016-02-29 12:55:54

标签: android android-viewpager pagerslidingtabstrip

我正在使用库PagerSlidingTabStrip来获取ViewPager中的动态头数。它是一个很棒的库,易于使用,但我需要更多地定制它。

我的PagerSlidingTabStrip标题位于屏幕的底部,因此,我需要PagerSlidingTabStrip组件顶部的“全宽下划线”和“选定的项目线指示符”。

经过一些测试后,我终于在正确位置使用'全宽下划线',使用这样的辅助LinearLayout:

def createCountDown(maxSec):
  while maxSec > 0:
    print maxSec;
    maxSec = maxSec - 1;

  gtk.main_quit();
  return;

maxSec = 5;
gtkLoopThread = threading.Thread(group=None, target=gtk.main, name=None, args=(), kwargs={});
print "After gtkThread declaration"
myThread = threading.Thread(group=None, target=createCountDown, name=None, args=(maxSec), kwargs={});
gtkLoopThread.start();
myThread.start();

但我还没有形成将“选定项目线指示器”放在顶部。我尝试使用顶部有一条线的drawable更改所选项目背景,但是不起作用:(

有什么想法吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案,但是需要对库代码进行一些更改。

首先,我们需要在项目中添加库代码,而不是通常的外部依赖:

dependencies {
 compile 'com.jakewharton:butterknife:6.0.0'
}

为此,有一个非常有用的教程,用于在我们的Android Studio项目中导入库项目。此外,在本教程中,它使用此PagerSlidingTabStrip库作为示例! (完美!)

How do I add a library project to Android Studio?

之后,我们只需要打开PagerSlidingTabStrip.java文件并转到'onDraw'功能。

我们必须改变这一行:

canvas.drawRect(lineLeft, height - indicatorHeight, lineRight, height, rectPaint);

对于这个:

canvas.drawRect(lineLeft, 0, lineRight, indicatorHeight , rectPaint);

已经完成了!

另一方面,如果你有兴趣修改这个库,也许你会发现这个修改很有用(将来可能包含在库的主分支中):

https://github.com/astuetz/PagerSlidingTabStrip/pull/62/files?short_path=04c6e90

我希望这对某人有用:)