10

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

问题是所有这些都是内置的 UI。显示部分文本的 textview 对我来说太小了,我试图显示下午 5 点,但对于 textview(或其他 UI?)来说太长了。

有什么更简单的方法来解决这个问题?例如,我可以设置部分文本的字体大小或 textview 布局的方法?

谢谢!

启用 FastScroll 的电影时间轴

4

1 回答 1

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);

上面的代码实际上在底部可绘制图像的顶部绘制文本,因此它不尊重底部可绘制对象的边界,这就是文本实际上溢出而不被切断的原因。至于为什么会这样设计?我的猜测是索引功能的目的是主要用于单个字符,例如 A、B、C 等……因此,快速滚动索引功能就是为了适应这种情况而设计的。

因此,要明确回答您的问题,除非您修改AbsListViewFastScroller满足您的需要,否则实际上无法更改文本大小或更改文本的绘制方式。

于 2013-04-05T15:59:46.960 回答