[Compose] rememberLazyListState

이승우·2023년 5월 31일
0
post-custom-banner

scrollState로 rememberLazyListStaterememberScrollState가 있으며, 현재 스크롤되고 있는 상태를 저장한다.

이를 이용하여 스크롤을 원하는 위치로 이동할 수 있다.

@Composable
fun SampleScreen(){
	val state = rememberLazyListState()
    val coroutineScope = rememberCoroutineScope()
    
    Button(onClick = { 
    	coroutineScope.launch{
        	state.scrollToItem(0)
        }
    })
}

LazyListState는 매우 자주 변경되므로 해당 속성을 읽는 것만으로도 불필요한 Recomposition이 트리거될 수 있다. 이를 방지하려면 rememberderivedStateOf를 사용하여 상태를 래핑해야 한다. 이렇게 하면 계산에 사용된 상태 속성이 변경될 때만 Recomposition이 발생한다.

val state = rememberLazyListState()
val showButton by remember{
	derivedStateOf {
    	state.firstVisibleItemIndex > 0
    }
}

Ref

profile
Android Developer
post-custom-banner

0개의 댓글