문제

개요
Listfield 클래스를 사용하여 정보 세트를 수직으로 표시합니다. 해당 Listfield의 각 행은 화면 높이의 2/5를 차지합니다.

따라서 다음 항목으로 스크롤 할 때 (특히 화면 높이의 제약으로 부분적으로 가려진 항목을 표시 할 때) 전체 스크롤/초점 작업은 매우 점프됩니다.

스크롤/초점 액션 사이에 부드러운 스크롤을 구현 하여이 점프를 고치고 싶습니다. Listfield 클래스에서 가능합니까?

예시
아래는 문제를 표시하는 스크린 샷입니다.

alt text
(원천: perkmobile.com)

사용자가 Listfieldthree Row로 아래로 스크롤하면이 행은 매우 뛰어난 방식으로 "스크롤"되어 매끄러운 스크롤이 없습니다. 나는 행 높이를 작게 만드는 것이이 문제를 완화한다는 것을 알고 있지만, 나는 그런 식으로 가고 싶지 않다.

주요 질문
Listfield에서 매끄러운 스크롤을하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

사용자가 트랙볼의 1 '클릭'아래로 스크롤하는 동작을 원한다고 가정하고 다음 항목이 강조 표시되지만 즉시 스크롤 점프 대신 새로운 스크롤이 표시되어 새 항목을 표시합니다 (Google의 Gmail 앱에서와 같이. Blackberry), 당신은 자신의 구성 요소를 굴려야합니다.

기본 아이디어는 수직 필드 매너를 서브 클래스 한 다음 스크롤 (MoveFocus 메소드의 키 오프)에 세로 위치 변수를 별도의 스레드 업데이트하고 관리자를 여러 번 무효화하는 것입니다.

스레드는 사용자가 생각하면 사용자 이벤트에서 애니메이션을 운전하고 있기 때문에 스무스 스크롤은 실제로 BlackBerry의 애니메이션입니다.

나는 세부 사항에 대해 약간 모호했으며, 이것은 정말 쉬운 일이 아니기 때문에 조금 도움이되기를 바랍니다.

다른 팁

내가 아는 한 공식적인 API 방법은 없지만, Nullfield (Field.focusable)의 영리한 사용을 통해 퓨즈를 낼 수 있습니다.

한 가지 방법은 초점을 맞춘 널 필드가 목록 항목 자체의 눈에 보이는 내용과 인터 레이스에서 각 "목록 항목"을 도출하는 것입니다. 이는 스크롤 시스템이 본질적으로 규모가 큰 간격이 아닌 작은 간격으로 "점프"하도록 강요합니다. 목록 항목 사이의 자연 분열은 목록 항목의 내용의 가시 위치를 수정하지 않는 부수적 이점을 갖습니다.

Listfield가 페인트를 칠하거나 자신만의 포장지를 만드는 방법을 무시하지 않는 한 항상이 문제를 겪게됩니다. 이것은 스크롤 할 때 항상 각 줄이 보이기 때문입니다. 대신 Labelfield를 사용해보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top