본문 바로가기

프로그래밍/Android

리스트뷰 메쏘드 몇개

 

>> 헤더 뷰 추가/제거 : addHeaderView( View ) / removeHeaderView( View )

>> 푸터 뷰 추가 : addFooterView( View ) / removeFooterView( View )

고정된 헤더나 푸터 뷰를 추가하는 메쏘드.

adapter 이외의 별도 뷰를 추가하는 용도로 사용된다. 여러개의 헤더, 푸터를 가질 수 있고,

레이아웃도 변경 가능하다.

 

위 메쏘드들은 adapter로 리스트를 구성하기전 (setAdapter)에 처리해 주어야 한다.

 

 

 

>> 화면에 보이고 있는 첫 아이템 포지션 : getFirstVisiblePosition()

 

 

>> x,y 포인터로 포지션 얻기 : pointToPosition(int, int)

 

boolean onTouchEvent(MotionEvent ev) {

int x = ev.getX();

int y = ev.getY();

int pos = pointToPosition( x, y );

if( pos == INVALID_POSITION ) {

아이템 없음.

}

 

>> 뷰얻기 : View v = getChildAt( pos );

pos를 직접 입력해 가져오는 건 위와 같지만, 포인터로 얻고자 하는 경우

pointToPosition 으로 얻어온 포지션에서 화면 첫 포지션(getFirstVisiblePosition)을

빼줘야 현재 선택한 row가 된다.

 

 

>> 스크롤 상태

myListView.setOnScrollListener( new OnScrollListener() {

public void onScroll(... ) {

}

 

public void onScrollStateChanged( AbsListView view, int scrollState ) {

if( scrollState == OnScrollListener.SCROLL_STATE_IDLE ) {

// 스크롤 정지 상태

}

 

if( scrollState == OnScrollListener.SCROLL_STATE_FILING) {

// 플링 중

}

 

if( scrollState == OnScrollListener.SCROLL_STATE_TOUCH_SCROLL ) {

// 사용자가 터치 중

}

}

});

'프로그래밍 > Android' 카테고리의 다른 글

sdk3.0 fragment를 하위버전에서 사용하기  (0) 2011.10.19
SurfaceView/GLSurfaceView  (0) 2011.10.11
Custom layout, layoutinflater  (0) 2011.10.11
MediaStore 썸네일 데이터 관련 정리  (0) 2011.09.26
뷰의 크기 변경,이동  (0) 2011.09.23
SQLite Database  (0) 2011.09.20
Edittext 관련 사항들  (0) 2011.09.18
MediaStore 오디오 재생목록  (0) 2011.09.17
List adapter  (0) 2011.09.15
낙서  (0) 2011.09.07