2012-10-26 101 views
10

我正在使用ListView實現時間軸。我啓用了FastScroll並使用了SectionIndexer,以便用戶可以拖動滾動條並查看顯示的部分文本。Android ListView快速滾動部分:部分文本太長

問題是所有這些都是內置的用戶界面。顯示段落文本的textview對我來說太小了,我想顯示05pm,對於textview(或其他UI?)來說太長了。

任何更簡單的方法來解決這個問題?例如,我可以設置節文本或文本視圖佈局的字體大小的方法?

謝謝!通過源代碼

Movie Timeline with FastScroll enabled

+0

同樣的問題在這裏。我能找到的是一個自定義的快速滾動實現,它顯示一個Toast消息。當然,必須有一種方法來減小字體大小。 – Praveen

+0

offtopic,但您使用粗體字體的字體是什麼? ontopic:我不是專家,但我猜測fastscroller是一個視圖,所以必須有一種方法來誇大它,然後修改其中的textview。 –

+0

@EvanR。 「你使用粗體字體的字體是什麼?」這只是黑色的常規字體。大膽和大尺寸。 –

回答

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

上面居然代碼繪製在底部圖像繪製的頂部的文本,以便它不尊重邊界底部可繪製的,這就是爲什麼文本實際上是溢出和不被切斷。至於爲什麼這是這樣設計的?我的猜測是,索引功能的目的主要是用於單個字符,如A,B,C等等,因此快速滾動索引功能被設計爲適合該功能。

因此,要給出明確的回答你的問題,真的沒有辦法改變文字大小或者更改文本正在制訂除非修改AbsListViewFastScroller,以滿足您的需要。