Android ListView快速滚动部分:部分文字太长

时间:2012-10-26 19:22:02

标签: android listview fastscroll

我正在使用ListView来实现时间轴。我启用了FastScroll并使用了SectionIndexer,以便用户可以拖动滚动条并查看显示的部分文本。

问题是所有这些都是内置的UI。显示部分文本的textview对我来说太小了,我试图显示05pm并且它对于textview(或其他UI?)来说太长了。

任何更简单的方法来解决这个问题?例如,我可以设置一个方法来设置剖面文本或textview布局的字体大小?

谢谢!

Movie Timeline with FastScroll enabled

1 个答案:

答案 0 :(得分:1)

查看AbsListView的源代码,您可以找到处理快速滚动机制的类,该机制最终为FastScrollerFastScroller实际上在画布上绘制了可绘制的图像和文本,提供给AbsListView就像这样......

canvas.drawText(mSectionText, (int) (rectF.left + rectF.right) / 2 - hOff, (int) (rectF.bottom + rectF.top) / 2 + mOverlaySize / 4 - descent - vOff, paint);

上面的代码实际上是在底部图像可绘制的顶部绘制文本,因此它不尊重底部drawable的边界,这就是为什么文本实际上是溢出而不是被切断的原因。至于为什么这样设计?我的猜测是索引功能的意图主要用于单个字符,如A,B,C等......因此快速滚动索引功能的设计符合这一要求。

因此,要对您的问题给出明确的答案,除非 您修改{{ 1}}和AbsListView以满足您的需求。