我正在使用库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更改所选项目背景,但是不起作用:(
有什么想法吗?
非常感谢。
答案 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
我希望这对某人有用:)