2013-01-22 4 views
12

이것은 다른 질문의 반복이 아닙니다. 나는 희망한다 :안드로이드가리스트 뷰의 맨 아래로 스크롤

나는 그것에있는 약간 백개의 품목을 가진 명부 전망이있다. 그들은 다른 전망에있는 날짜 각인 한 입장이다.

내가 화면을 보여줄 때 가장 아래쪽으로 스크롤되기 때문에 가장 최근 항목이 표시되지만 논리적 인 "끝"종류의 방식으로 표시됩니다.

m_list.setSelection(m_list.getCount()-1); 

Kewl 등 ...하지만 :(이제 내 목록 스크롤되지 않습니다. 그것은 바닥에 붙어 것 같다. 나는 "트럭"을 참조 할 수 있으며이 작고 하단에 있습니다.

확인 .. 내 questy는 이렇게 .. 어떻게 맨 아래로 스크롤하여 시작하지만, 사용자 (나)가 위로 (위로)를 스크롤 할 때까지 스크롤 할 수있게하십시오.

+0

어디에서 setSelection 함수를 호출합니까? – Ferdau

+0

OMG! 그 질문은 bril '이었다. 나는 그것을 내 ondraw 안에 넣고 있었다. 그것은 처음에 나의 테스트 코드의 일부였다 ... 굉장한! – MollyCat

+0

브룩 응답을위한 Upvote? – Ferdau

답변

42

은 XML의 listview에 다음을 설정합니다.

android:stackFromBottom="true" 
android:transcriptMode="alwaysScroll" 
+0

그것은 당신을 위해 일합니까 ?? – moDev

+0

실제로 그런 것은 아닙니다. 이미 m_list.setTranscriptMode (ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 내 코드에서. 내 목록이 잠긴 것처럼 보입니다. – MollyCat

+0

m_list.setStackFromBottom (true); 아무 것도하지 않는 것 같았다. 참고 .. 나는 XML에서 내 ctrl을 정의하지 않았다 – MollyCat

12

다음과 같이 사용할 수 있습니다. 목록보기 맨 아래에 도달하는 코드

listView.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      listView.setSelection(listView.getCount()); 
     } 
    }, 500); 

지연 시간을 500ms로 설정합니다. 또는 사용할 수 있습니다

listView.post(new Runnable() { 
     @Override 
     public void run() { 
      listView.setSelection(listView.getCount()); 
     } 
    }); 

이렇게하면 목록보기가 실용적으로 스크롤됩니다.

+0

아래로 스크롤하지 마십시오. 이것은 메서드 이름에서 알 수 있듯이 마지막 항목의 TOP에 선택 항목을 설정합니다. 항목이 꽤 길면 (예 : 긴 헤더) 유용하지 않습니다. – Sver

+0

listView.setSelection (listView.getCount()); 은 이어야합니다. listView.setSelection (listView.getCount() - 1); –

관련 문제