Listview 목록을 업데이트 한 후 목록 끝으로 스크롤
listAdapter를 사용하여 listview를 업데이트 한 후 목록이 맨 아래로 스크롤되도록하여 목록에 입력 된 마지막 요소를 표시하고 싶습니다. 어떻게해야합니까?
나는 이것을 시도했지만 운이 없다 :
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
감사합니다
목록 데이터가 변경된시기를 알고 있다고 가정하면 목록 선택을 마지막 행으로 설정하여 목록을 맨 아래로 스크롤하도록 수동으로 지시 할 수 있습니다. 다음과 같은 것 :
private void scrollMyListViewToBottom() {
myListView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
myListView.setSelection(myListAdapter.getCount() - 1);
}
});
}
목록보기에서 다음 매개 변수를 사용해야합니다.
스크롤
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
리스트의 머리를 아래로 설정
lv.setStackFromBottom(true);
이러한 매개 변수를 XML로 설정할 수도 있습니다 (예 : 이처럼 :
<ListView
...
android:transcriptMode="alwaysScroll"
android:stackFromBottom="true" />
TRANSCRIPT_MODE_ALWAYS_SCROLL과 setSelection의 조합으로 저에게 효과적이었습니다.
ChatAdapter adapter = new ChatAdapter(this);
ListView lv = (ListView) findViewById(R.id.chatList);
lv.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
lv.setAdapter(adapter);
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
lv.setSelection(adapter.getCount() - 1);
}
});
버튼 클릭에 대한 응답으로 이것을 사용하여 성공 했으므로 내용을 업데이트 한 후에도 사용할 수 있다고 생각합니다.
myListView.smoothScrollToPosition(theListAdapter.getCount() -1);
이것을 ListFragment에서 얻으려면 :
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
getListView().setStackFromBottom(true);`
누군가가 ListFragment와 동일한 문제에 대해 Google 검색을하면이 것을 발견하기 때문에이 답변을 추가했습니다.
문안 인사
사용 : 목록의 머리를 아래로 설정 lv.setStackFromBottom(true);
나를 위해 일했고 목록이 처음 표시되면 자동으로 맨 아래로 스크롤됩니다. 그런 다음 목록이와 같이 스크롤됩니다 TRANSCRIPT_MODE_ALWAYS_SCROLL
.
나는 사용한다
setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
하단에 항목을 추가하고 오래된 항목은 대화 내용과 같이 상단에서 스크롤합니다.
대화 모드는 원하는 것이며 Google 토크 및 SMS / MMS 애플리케이션에서 사용됩니다. 항목을 추가 할 때 어댑터에서 notifyDatasetChanged ()를 올바르게 호출하고 있습니까?
가장 간단한 해결책은 다음과 같습니다.
listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
listView.setStackFromBottom(true);
'Programing' 카테고리의 다른 글
Swift에서 iOS에 UUID 생성 (0) | 2020.03.21 |
---|---|
Long을 정수로 변환 (0) | 2020.03.21 |
"읽기 전용"속성을 추가하는 방법 (0) | 2020.03.21 |
Jupyter Notebook에 Conda 환경이 표시되지 않음 (0) | 2020.03.21 |
명령 행에 Android SDK 빌드 도구를 설치하는 방법은 무엇입니까? (0) | 2020.03.21 |