ListView에서 처리되는 항목 목록이 있습니다. 기본적으로 ListView는 처음부터 끝까지 (스크롤링)를 보여줍니다.Xamarin Forms에서 대신 마지막 항목을 표시하기 위해 ListView를 설정하는 방법은 무엇입니까?
ListView를 맨 아래에서 시작하도록 어떻게 설정합니까?
사용법 : 채팅 메시지보기 - 여기서 채팅의 마지막 메시지를 표시하고 해당 메시지로 스크롤해야합니다.
ListView에서 처리되는 항목 목록이 있습니다. 기본적으로 ListView는 처음부터 끝까지 (스크롤링)를 보여줍니다.Xamarin Forms에서 대신 마지막 항목을 표시하기 위해 ListView를 설정하는 방법은 무엇입니까?
ListView를 맨 아래에서 시작하도록 어떻게 설정합니까?
사용법 : 채팅 메시지보기 - 여기서 채팅의 마지막 메시지를 표시하고 해당 메시지로 스크롤해야합니다.
ListView
에서 ScrollTo
을 사용하여 설정 한 위치로 스크롤 할 수 있습니다. OnAppearing
메소드를 덮어 써야합니다.
protected override void OnAppearing()
{
base.OnAppearing();
ViewModel.RefreshScrollDown =() => {
if (ViewModel.Messages.Count > 0) {
Device.BeginInvokeOnMainThread (() => {
ListViewMessages.ScrollTo (ViewModel.Messages [ViewModel.Messages.Count - 1], ScrollToPosition.End, true);
});
}
};
}
그럼 그냥 (System.Action
인) RefreshScrollDown
전화를 아래로 스크롤 할 때마다, 예를 들면 :이 ListView
ViewModel.Messages의 끝으로 스크롤하기위한 예입니다 새 메시지를 받거나 채팅을로드 할 때
참고 : 경우에 당신이 해결했습니다 목록보기 높이 ScrollTo 목록 높이를 복용하고 우리는 크기를 원래 크기로 이동 ScrollTo를 사용할 때 때 변화 heightRequest으로 목록 높이가 그렇게 원래의 높이를 변경하지 않습니다 이 문제를 해결하려면
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == Xamarin.Forms.ListView.HeightRequestProperty.PropertyName)
{
Control.LayoutParameters.Height =(int)(sender as Xamarin.Forms.ListView).HeightRequest;
Control.RequestLayout();
}
}
목록보기 항목을 목록보기 항목에 넣기 전에 되돌리기를 시도 했습니까? – Poody
코드를 친절하게 포함시켜 구현 방법을 확인할 수 있습니다. –
흠. 그것으로, 나는 여전히 첫 번째 항목이 마지막 항목 (역순 정렬)이되도록 스크롤의 상단부터 시작합니다. – Raven