By doing so, your ListView is on top of your CustomGestureArea, thus it take event.
You could force zOrder to make it on top.
But you should try simply to inverse who's on top of who :
ListView{
CustomGestureArea{
anchors.fill:parent
onSwipeRight:{ // do something
}
onSwipeLeft:{ // do something
}
}
}