2012-10-26 2 views
10

타임 라인을 구현하기 위해 ListView를 사용하고 있습니다. FastScroll을 활성화하고 SectionIndexer를 사용하여 사용자가 스크롤 막대를 드래그하여 표시된 섹션 텍스트를 볼 수있게했습니다.Android ListView 섹션이있는 빠른 스크롤 : 섹션 텍스트가 너무 깁니다.

문제는 모두 기본 제공되는 UI입니다. 섹션 텍스트를 표시하는 텍스트 뷰가 너무 작아서 05pm을 표시하려고하는데 너무 길어서 textview (또는 다른 UI?)가됩니다.

더 쉬운 방법은이 문제를 해결하는 것입니다. 예를 들어 섹션 텍스트 또는 텍스트 뷰 레이아웃의 글꼴 크기를 설정할 수있는 방법은 무엇입니까?

감사합니다.

Movie Timeline with FastScroll enabled

+0

여기에도 같은 문제가 있습니다. 내가 찾을 수있는 건 토스트 메시지를 표시하는 사용자 정의 빠른 스크롤 구현입니다. 확실히 글꼴 크기를 줄이는 방법이 있어야합니다. – Praveen

+0

offtopic이지만 굵은 글씨로 어떤 글꼴을 사용하고 있습니까? ontopic : 저는 전문가는 아니지만 fastscroller가 뷰인 것으로 추측합니다. 따라서이를 팽창시켜 텍스트 뷰를 수정해야합니다. –

+0

@EvanR. "어떤 글꼴을 굵은 글꼴로 사용하고 있습니까?" 검은 색으로 된 일반 글꼴 일뿐입니다. 대담하고 큰 크기. –

답변

1

AbsListView에 대한 소스 코드를 보면, FastScroller되는 끝 빠른 스크롤 메커니즘을 처리하는 클래스를 찾을 수 있습니다. FastScroller 실제로는 경계를 존중하지 않도록 실제로 위의 코드는 아래 이미지 당김의 상단에있는 텍스트를 그립니다

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

이미지 당김 등 같은 AbsListView에 제공 한 캔버스에 텍스트를 ... 그립니다 텍스트가 실제로 오버플로되어 끊어지지 않는 이유입니다. 이 방법으로 설계된 이유는 무엇입니까? 내 생각 엔 인덱스 기능의 의도는 주로 A, B, C 등의 단일 문자에 사용된다는 것이 었습니다. 따라서 빠른 스크롤 색인 기능은이를 충족하도록 설계되었습니다. 그래서

이 질문에 명확한 답을주고, 정말 텍스트 크기를 변경하거나 텍스트는 AbsListViewFastScroller이 당신의 필요에 맞게 수정 하지 않는 그려지는 방법을 변경할 수있는 방법이 없습니다.