Gridview sometimes fails to scroll an item completely into view


I have a gridview with one column I'm using for a menu. This is the setup code:

    listview =, 30)
    listview.backgroundImage = img_9s_floating_panel
    listview:setCellPadding(0, 0, 0, 0)
    listview:setContentInset(20, 20, 44, 12)
    listview.scrollCellsToCenter = false

This gridview scrolls items into view, but sometimes fails to bring them totally into view. Also, and this happens with other gridviews I'm using as well, it often leaves a cell 1 pixel out of the stencil/clip region so a line of pixels is missing off the cell. While annoying, that's not a dealbreaker, but not showing almost a whole cell is. Here's a gif of the more serious issue:
list scroll error
(please ignore my completely black bar when the menu item is selected)
When I try to selec tthe "Disable music" option which is technically in the display but only by 3 pixels, the gridview does not try to scroll it completely into view. I have to select the item above it to trigger the scroll.

(You can actually see the out-by-one error when scrolling up to the top item in the list, for reference - and there's an out-by-two error when selecting the bottom item in the list.)

edit: If I set the cell padding to 1,1,1,1 then I can get the thing to select a cell that's completely out of the view rect:
list scroll error 2