스크롤을 맨 아래까지 내렸을 때 터미널에 출력되는 결과물은 다음과 같습니다.
{
"contentSize": {
"height": 1273.90478515625,
"width": 411.4285583496094
},
"layoutMeasurement": {
"height": 554.2857055664062,
"width": 411.4285583496094
},
"contentOffset": {
"y": 719.6190185546875,
"x": 0
}
}
여기서 contentSize.height는 FlatList 내부의 전체 크기를 나타냅니다. layoutMeasurement.height는 화면에 나타난 FlatList의 실제 크기를 나타냅니다. 현재 프로젝트의 경우 화면의 상단과 하단 영역을 제외한 크기겠지요? contentOffset.y는 스크롤할 때마다 늘어나는 값인데요. 스크롤이 맨 위에 있을 때는 0이고, 스크롤이 맨 아래에 있을 때는 contentSize.height - layoutMeasurement.height를 계산한 값입니다.
따라서 contentSize.height - layoutMeasurement.height - contentOffset.y를 계산한 값이 0에 가까워진다면 FlatList의 스크롤이 바닥에 가까워지는 것이라고 이해하면 됩니다.