2011-11-21 4 views
4

안녕하세요 여러분 ListView에서 CustomBaseAdapter에 연결된 정적 헤더를 만들려고합니다.ListView, CustomBaseAdapter의 정적 헤더

머리글이 맨 위에 있고 ListView로 스크롤하지 않기를 원합니다. 다른 항목은 목록을 스크롤하면 헤더 아래에 사라져야합니다.

머리글은 내가 만든 xml 파일 (lvheader)을 통해 설정됩니다. 헤더가 내 ListView 위에 올바르게 표시되지만 정적이 아니며 ListView로 스크롤됩니다.

누군가 제발 도와 줄 수 있습니까? Thx를 미리

이미 몇 가지 아이디어를 얻기 위해 stackoverflow를 검색했습니다. 결과는 다음과 같습니다.

내 main.xml에에있는 ListView에 헤더를 추가

ListView kp = (ListView)findViewById(R.id.listvw); 

    LayoutInflater inflater = getLayoutInflater(); 
    ViewGroup header = (ViewGroup)inflater.inflate(R.layout.lvheader, kp, false); 
    kp.addHeaderView(header, null, false); 

    ArrayList<SearchResults> searchResults = GetSearchResults(); 
    kp.setAdapter(new MyCustomBaseAdapter(AndroidLogin.this, searchResults, icons)); 
    ... 
} 

답변

4

Afaik, addHeaderView()는 항목을 목록의 맨 위에 추가하지만 "고정"(스크롤 할 수 없게)하지 않습니다. 고정 된 항목을 원한다면 세로 LinearLayout에 배열 된 두 개의보기가 있어야합니다. 맨 위는 고정 된 부분이고 맨 아래는 ListView입니다.

+0

안녕하세요, Bruno 네, 그게 가장 좋고 간단한 방법이라고 생각합니다. – Lars

-1

사용 addHeaderView() :

공공 무효 addHeaderView (보기 V)

가입일 : API 레벨 1을 추가 고정 된보기가 목록 맨 위에 나타납니다. addHeaderView를 두 번 이상 호출하면 뷰가 추가 된 순서대로 에 나타납니다. 이 호출을 사용하여 추가 한 뷰는 원하는 경우 포커스 을 사용할 수 있습니다. 참고 : setAdapter를 호출하기 전에 이것을 호출하십시오. 이것은 너무 ListView는 머리말과 꼬리말보기를 위해 을 설명하는 것과 함께 제공된 커서를 감쌀 수 있습니다.

+1

하지만 정적 인 것은 아닙니다. –

0

당신은 Listview와 헤더를 구분해야한다고 생각합니다.

관련 문제