본문 바로가기
프로그래밍/App 개발

[Xamarin] Sticky view

by 엽기토기 2021. 4. 21.
반응형

Scroll할때 상단에 닿으면 붙는 sticky한 커스텀 토글 제작..

- ScrollView 안에 Grid, Grid안에 토글과 하단의 flexlayout 을 겹치게 배치 (row를 동일하게하면됨)

- 위치는 마진값을 조정

- Y값은 해당 뷰의 절대좌표, translationY는 상대좌표. 처음에 0임. SizeChanged 이벤트가 발생하면 토글의 Y를 저장 (스크롤할때 상단에 닿았는지 확인용)

- ScrollView의 eventargs.scrolledY가 저장해둔 토글의 Y값보다 커지면 토글의 translationY에 (e.scrolledY - 토글Y) 대입

- 토글Y값보다 작아지면 토글의 translationY에 0 대입

 

#region Sticky Toggle
private void BottomContentToggle_SizeChanged(object sender, EventArgs e)
{
    bottomContentToggle.SizeChanged -= BottomContentToggle_SizeChanged;
    _toggleY = bottomContentToggle.Y;
}

private void ScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
	bottomContentToggle.TranslationY = e.ScrollY > _toggleY ? e.ScrollY - _toggleY : 0;
}
#endregion

 

반응형