2013-09-04 2 views
5

버튼을 눌러 목록보기를 스크롤하고 싶습니다. 두 개의 버튼을 위아래로 사용하고 있습니다. 위로 버튼을 누르면 listview가 한 행 위로 이동해야하고, 아래로 버튼을 누르면 listview가 한 행 아래로 이동해야합니다.버튼이있는 목록보기 스크롤

내 listview는 this 링크를 기반으로합니다. 나는 스크롤 뷰 here의 좋은 예를 발견했다. 이제 내 질문에 scrollview 대신 내 listview 사용할 필요가 및 한 줄로 증가/감소합니다. 안드로이드에 대한 새로운 사람들이 나를이 문제를 해결하는 데 도움이됩니다. 미리 감사드립니다.

+0

확인 [이] (http://stackoverflow.com/questions/17205017/android-listview-thumb-scrollbar/17206022#17206022) 안드로이드는 기본 스크롤 막대를 제공합니다 listview. – sarabu

+3

절대로 스크롤보기 안에 ListView를 중첩하지 마십시오! – Skynet

+0

scrollview 내부에서 목록보기가 필요 없습니다. 무엇을 묻는 것은 버튼을 클릭하여 위아래로 움직이려면 listview가 필요하다는 예제와 같습니다. – AndroidOptimist

답변

3

당신은 다음 중 하나를 시도 할 수 있습니다 :

getListView().setSelection(int); 

부드러운 스크롤의 경우 :

getListView().smoothScrollToPosition(int); 

샘플 코드 : 직접 스크롤 들어

public View.OnClickListener onChk = new View.OnClickListener() { 
      public void onClick(View v) { 

       int index = list.getFirstVisiblePosition(); 
       getListView().smoothScrollToPosition(index+1); // For increment. 

} 
}); 

그러나 상단의보기의 절반 또는 일부만 보이는 경우 하나의 케이스 만 처리해야합니다. 부드러운 기간이

+0

버튼을 클릭하여 스크롤해야합니다. (즉) 위로 버튼을 누르면 한 줄 위로 스크롤해야합니다. 제 질문은 명확합니까? – AndroidOptimist

+2

예 위의 스 니펫 중 하나를 단추 클릭 수신기에 넣으십시오. 그게 전부 야! int 위치로 이동하는 변수를 증가 및 감소시켜야합니다.이 증가 및 감소는 버튼 클릭에서 발생해야합니다. – Skynet

+0

늦게 답장을 드려 죄송합니다. 위의 코드를 btn으로 버튼에 넣었습니다.setOnClickListener (새 View.OnClickListener() {@ 오버라이드 public void onClick (View arg0) {listView.setSelection (8);}}) ;. 하지만 작동하지 않는 경우 – AndroidOptimist

2

IDE 제안 사항을 확인하셨습니까? ;)

ListView lv = (ListView) findViewById(R.id.myListView); 

// to scroll to a given position 
lv.scrollTo(int x, int y); 

// to scroll by a given number of dp 
lv.scrollBy(int x, int y); 
+0

모든 항목의 높이가 같습니까? 손으로 높이를 설정하거나 수동으로 계산합니까? – meeDamian

+0

단추를 클릭하여 스크롤 할보기가 필요합니다. 일반적으로 지금은 목록보기를 스크롤 할 수 있습니다. – AndroidOptimist

0

스크롤

getListView().smoothScrollToPositionFromTop(position,offset,duration); 

파라미터 위치 -> 위치가

뷰의 상부로부터 위치의 픽셀 ----> 원하는 거리 오프셋

로 스크롤 스크롤이 완료되면

지속 시간 -> 스크롤에 사용할 시간 (밀리 초)

,

참고 : API 11.