You need set an observer to watch a field for the change of the focus you want: rowFocused, rowItemFocused, currFocusRow.
The observer calls a function/subroutine so you can react to the focus changes. It will pass in the field you requested it observe as an argument.
The ZoomRowList never loses focus because once you are at the top and press up again the OnKeyEvent will pass-through to the next node up. It filters up.
So where you call the ZoomRowList(in whatever calls this component) is where you could use the OnKeyEvent against if ZoomRowList has focus and they press up. If they are in the ZoomRowList and press up and are at the top the ZoomRowList OnKeyEvent doesn't care. It will pass this up. So you must catch this in the OnKeyEvent from where ZoomRowList is called. How you understand. You basically are stuck in the ZoomRowList until an observer reacts that brings focus somewhere else. This is how all scene graph works.