"섹션 헤더"가있는 "정적 텍스트"접근 방식이 ScrollView에서 필요하다고 생각합니다. 목록에 "A", "B"등의 문자가 포함 된 사용 불가/클릭 할 수없는 항목이 있어야합니다. 섹션 헤더가 뷰의 위쪽으로 스크롤되고, ScrollView 위의 정적 TextView의 내용이 헤더의 내용으로 변경됩니다. 즉, "B"머리글 항목이 스크롤되지 않으면 TextView에 "B"가 포함됩니다.
"힘든 부분은"섹션 헤더 "가 맨 위를 벗어나거나 반대 방향으로 스크롤 할 때 감지됩니다.
보너스 포인트를 얻으려면 내용이 변경 될 때 TextView에서 "밀어 올리기"애니메이션을 사용하여 목록 항목이 TextView로 롤링되는 것처럼 보이게하십시오. ("... \ view \ Animation2.java"의 SDK에있는 API 데모 애플리케이션에이 애니메이션 예제가 있습니다.)
업데이트 : 스크롤 이벤트를 감지하는 방법을 볼 수
android.widget.AbsListView.OnScrollListener
인터페이스 : 추가 검토 후 ... 여기에이 작품을 (! 그것은 나를 위해 재미있는 운동이었다) 제작으로 관련 일부 클래스 등이다. 슬라이드 방향 (슬라이드 업 또는 다운 애니메이션 선택)을 결정하기 위해 이전의 "시야 (top of view)"위치를 추적해야합니다.
위에 나열된 애니메이션은 실제로 원하는 것이 아닙니다. android.widget.TextSwitcher
클래스와 push*.xml
파일을 SDK/android-X/data/res/anim 디렉토리에있는 것이 더 좋습니다.
섹션 뷰를 목록에 삽입하려면 고유 한 어댑터 하위 클래스가 있어야합니다. getView(...)
은 행이 섹션 머리글인지 여부에 관계없이 행 뷰의 속성 (bkgnd, 텍스트 스타일 등)을 다르게 설정할 수 있습니다. TextSwitcher 뷰 팩토리에서이 코드를 다시 사용하여 정적 TextView/Switcher를 목록 위에 채 웁니다.
재미 있습니다 ...!
나는 당신이 의미하는 바를 알고있다 : ScrollView 외부의 상단에 고정 된 헤더 뷰와 ScrollView 내의 다른 스콜링 헤더 뷰를 가지고있다. 스크롤하는 머리글보기가 맨 위에 오면 고정 머리글보기의 텍스트를 변경하십시오. +1 아이디어, 아직 누군가가 내 질문에 대한 해결책을 가지고 있기를 바랍니다. –