2012-10-26 16 views
10

Używam ListView do implementacji osi czasu. Włączyłem FastScroll i użyłem SectionIndexer, aby użytkownik mógł przeciągnąć pasek przewijania i zobaczyć wyświetlany tekst sekcji.Android ListView szybkie przewijanie z sekcjami: zbyt długi tekst sekcji

Problem polega na tym, że wszystkie są wbudowanym interfejsem użytkownika. Widok tekstowy, który wyświetla tekst sekcji jest dla mnie za mały, próbuję wyświetlić 17.00 i jest zbyt długi dla widoku tekstowego (lub innego interfejsu użytkownika).

Łatwiejszy sposób rozwiązania tego problemu? Na przykład, jaką metodę mogę ustawić rozmiar czcionki tekstu sekcji lub układu widoku tekstu?

Dzięki!

Movie Timeline with FastScroll enabled

+0

Ten sam problem tutaj. Wszystko, co mogę znaleźć, to niestandardowa implementacja szybkiego przewijania, która wyświetla komunikat toastu. Z pewnością musi istnieć sposób na zmniejszenie rozmiaru czcionki. – Praveen

+0

offtopic, ale jakiej czcionki używasz pogrubioną czcionką? ontopic: Nie jestem ekspertem, ale domyślam się, że fastscroller jest widokiem, więc musi istnieć sposób na nadmuchanie go, a następnie zmodyfikowanie jego widoku tekstowego. –

+0

@EvanR. "jakiej czcionki używasz pogrubioną czcionką?" To zwykła czcionka z czarnym tłem. pogrubiony i duży rozmiar. –

Odpowiedz

1

Przeglądając kod źródłowy AbsListView można znaleźć klasy, który obsługuje szybki mechanizm przewijania, który kończy się FastScroller. FastScroller faktycznie rysuje rozciągliwej obrazu i tekstu na płótnie, które przewidziano do AbsListView jak tak ...

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

Powyższy kod faktycznie rysuje tekst na górze dolnej obrazu rozciągliwej więc nie przestrzegają granic dolnej części do rysowania, dlatego tekst jest w rzeczywistości przepełniony i nie jest odcięty. Dlaczego tak zostało zaprojektowane? Domyślam się, że zamiar funkcji indeksu miał być używany głównie dla pojedynczych znaków, takich jak A, B, C, itd ... i dlatego funkcja szybkiego przewijania została zaprojektowana tak, by pasować do tego.

Tak więc, aby dać jednoznacznej odpowiedzi na pytanie, tam naprawdę nie ma sposobu, aby zmienić rozmiar tekstu lub zmienić sposób tekst jest przygotowywana chyba zmodyfikować AbsListView i FastScroller do własnych potrzeb.

Powiązane problemy