2014-02-10 3 views
3

listView 항목을 screen의 중심 위로 스크롤 할 때 변경하거나 일부 동작을 어떻게 감지합니까?스크롤 후리스트의 목록보기 위치

UPD 솔루션

@Override 
    public void onScroll(AbsListView view, int firstVisibleItem, 
      int visibleItemCount, int totalItemCount) { 

     int half = visibleItemCount/2; 
     int to = firstVisibleItem+half; 

     for (int i=firstVisibleItem; i<to; i++) { 
          // actions for item above center 
      Item item = (Item)adapter.getItem(i); 
      item.read = true; 
     } 
     adapter.notifyDataSetChanged(); 
    } 

답변

1

당신은 ListView.OnScrollListener을 설정하고 항목은 중심 위의 스크롤을 원하는 경우 확인할 수 있습니다. onScroll 메서드는 표시되는 항목 수, 첫 번째 항목의 인덱스 및 목록의 총 항목 수를 제공하며 요소가 특정 위치로 스크롤 할 때이를 결정할 수 있어야합니다.

2

이러한 방법을 조합하여 사용할 수 있습니다. ListView이 전체 화면을 뻗는 경우 (즉, 높이가 MATCH_PARENT으로 설정된 경우), 화면의 중심을 총 어린이 수/2로 결정할 수 있습니다.이 작업에는 getChildCount() 방법을 사용하십시오.

Ayoub이 말했듯이 ListView.OnScrollListener을 사용하여 ListView에서 스크롤 변경 내용을 수신 할 수도 있습니다.

DisplayMetrics metrics = getResources().getDisplayMetrics(); 
int windowWidth = metrics.widthPixels; 
int windowHeight = metrics.heightPixels 
:

경우 귀하의 ListView의 높이가 가능한 윈도우 화면과 일치하지 않는, 사용 가능한 윈도우 높이를 찾기 위해 이것을 사용할 수 있습니다