我正在使用 ListView 来实现时间线。我启用了 FastScroll 并使用了 SectionIndexer,以便用户可以拖动滚动条并查看显示的部分文本。
问题是所有这些都是内置的 UI。显示部分文本的 textview 对我来说太小了,我试图显示下午 5 点,但对于 textview(或其他 UI?)来说太长了。
有什么更简单的方法来解决这个问题?例如,我可以设置部分文本的字体大小或 textview 布局的方法?
谢谢!
我正在使用 ListView 来实现时间线。我启用了 FastScroll 并使用了 SectionIndexer,以便用户可以拖动滚动条并查看显示的部分文本。
问题是所有这些都是内置的 UI。显示部分文本的 textview 对我来说太小了,我试图显示下午 5 点,但对于 textview(或其他 UI?)来说太长了。
有什么更简单的方法来解决这个问题?例如,我可以设置部分文本的字体大小或 textview 布局的方法?
谢谢!
通过查看源代码AbsListView
,您可以找到处理最终成为的快速滚动机制的类FastScroller
。FastScroller
实际上在提供给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 等……因此,快速滚动索引功能就是为了适应这种情况而设计的。
因此,要明确回答您的问题,除非您修改AbsListView
并FastScroller
满足您的需要,否则实际上无法更改文本大小或更改文本的绘制方式。