我正在使用ListView来实现时间轴。我启用了FastScroll并使用了SectionIndexer,以便用户可以拖动滚动条并查看显示的部分文本。
问题是所有这些都是内置的UI。显示部分文本的textview对我来说太小了,我试图显示05pm并且它对于textview(或其他UI?)来说太长了。
任何更简单的方法来解决这个问题?例如,我可以设置一个方法来设置剖面文本或textview布局的字体大小?
谢谢!
答案 0 :(得分:1)
查看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);
上面的代码实际上是在底部图像可绘制的顶部绘制文本,因此它不尊重底部drawable的边界,这就是为什么文本实际上是溢出而不是被切断的原因。至于为什么这样设计?我的猜测是索引功能的意图主要用于单个字符,如A,B,C等......因此快速滚动索引功能的设计符合这一要求。
因此,要对您的问题给出明确的答案,除非 您修改{{ 1}}和AbsListView
以满足您的需求。