리스트뷰 메쏘드 몇개
>> 헤더 뷰 추가/제거 : 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 ) {
// 사용자가 터치 중
}
}
});