2013-08-12 2 views
5

HeaderView가있는 ListView가 있습니다.ListView 상단의 헤더보기 (섹션 헤더 아님) 만들기

HeaderView의보기 중 하나를 맨 위에 표시하고 싶습니다.

스티키 섹션 헤더에 대한 예제가 많이 있습니다.

또한 StickyScrollViewItems을 보았습니다. 그러나 ListView을 사용하고 있기 때문에 ScrollView을 사용할 수 없습니다.

여기에 사용할 수있는 라이브러리가 있습니까? 아니면 OnScrollListener (ListView)을 재정의해야합니까?

감사합니다.

+0

시도하는 코드를 표시하고 현재 결과가 진술되어 있습니까? 'addHeaderView (v)'를 사용하고 올바른 순서로 추가하면 문제가 없어야합니다. – codeMagic

+0

@codeMagic 방금 언급 한 라이브러리를 보았습니다. addHeaderView를 사용했지만 스틱을 만드는 방법을 알아낼 수 없습니다. 예제는 ListView의 HeaderView가 아닌 ​​Section Headers에 대한 것입니다. – dannyroa

답변

1

이 작업을 수행 할 수있는 라이브러리가 무엇인지 모르겠지만 헤더에 대해 수행하는 작업은 내 xml에 이있는 RelativeLayout을 사용하는 것입니다. 그런 다음이 상단에 헤더보기를 고정하기 위해 내가 알고있는 가장 쉬운 방법입니다 당신의 ListView

android:layout_below="@id/idOfHeaderView 

을주고 당신이 원하는 그러나 헤더보기를 만들고 그것을 재산

android:layout_alignParentTop="true" 

을 제공합니다. 매번 저를 위해 일해 왔습니다. 이게 도움이 되길 바란다.

+1

답변 해 주셔서 감사합니다. 나는 내 게시물이 분명하지 않은 것 같아요. 내 HeaderView에서 세로로 세 줄보기가 있습니다. 나는 단지 제 3의 관점을 고수하기를 원한다. – dannyroa

+0

나는 본다. 조금 이상하지만 아마 당신이 정확히 무엇을하는지 이해하지 못하는 것 같습니다. 세 번째보기를 첫 번째로 붙일 수 없으며 두 번째를 'ListView'로 이동하십시오. – codeMagic

+0

아쉽게도 첫 번째보기가 될 수 없습니다. 그래서 제 해결 방법은 ListView의 첫 번째 항목에만 표시되는 Section Header에 세 번째보기를 배치하는 것입니다. – dannyroa

1

저는 계약상의 이유로 공유 할 수없는 코드를 작성했습니다. 기본적으로 here에 설명 된 방법을 따르고 스크롤보기 대신 목록보기에 적용하십시오. 끈적 끈적한 경우 다음을 추가 -

주요 포인트는

  1. 이 부동/끈적 끈적한 헤더와 isSticky 부울와 헤더를 추가 할 때
  2. 프록시 방법을 사용합니다 형제와 같은 목록보기를 포함하는 래퍼보기를 작성하다 가짜 빈 헤더를 같은 크기의 목록 뷰와 플로팅 헤더 래퍼에 보내려는 헤더 뷰 (여기에서 상대적 레이아웃 사용)
  3. 더미 헤더 뷰의 맨 위 px 위치를 추적하는 listview의 스크롤 리스너를 목록에 포함 된 부동 헤더의 위쪽 여백으로 설정 lative 레이아웃
  4. 핸들 모든 성가신 가장자리 케이스/OEM 오버 스크롤 쓰레기는

하면 목록보기 후 부동/고정 헤더의 초기 위치를 설정하는 것을 잊지 마십시오 (같은 삼성에 대한 this)를 모든 situtions에서 작동하도록합니다 밖으로 배치되었습니다. D에게

모든를 : 나는 아이폰 OS를 부러워하고 구현하는 데 시간이 걸립니다 어떤 아이폰 OS는 DEVS이 빈둥 거리고 생각합니다 곳은 시간 -

나는 그 조금이 참여하고 제대로하기 위해 일부 조정 소요 느낌 쓰는 시간에 오픈 라이브러리는 스크롤 뷰나리스트 뷰 헤더를 사용하고 있습니다.이러한 접근법에 대한 이슈는리스트 뷰가 뷰를 재활용한다는 것입니다 (스크롤 뷰와 달리 더미 뷰를 참조 할 수 없습니다). 또한 현재 libs는 어댑터 getView 메소드 등을 사용하여 끈적 뷰를 복제하는 것처럼 보입니다. 동적 목록 뷰 헤더 뷰는 재활용되지 않으므로 하나의 부모 만 가질 수 있으므로 부모가 될 수 있으므로 성가 시게됩니다. (제 경우에는 많은 기능을 가지고 있으므로 동일한 유형의 뷰를 두 개 만들고 현재 lib를 구두점으로 사용하고 싶지 않습니다. 내 솔루션에 맞게)

+0

코드가 있지만 나를 위해 일하는 설명. 나를 위해 내 작품을 잘라 낸 것 같아. – frostymarvelous

+0

나는 당신을 위해 기분이 - 단지 클라이언트가 그것을하지 않도록 설득;) – Dori

+0

그냥 아주 잘 지불 클라이언트입니다. :) – frostymarvelous