I also came across the problem you are facing.
I found that hiding/showing a parent fragment had no effect on the child fragments' visible states, and wouldn't call onHiddenChanged()
and would return isVisible() = true
always.
See my answer in another question for my workaround.
Basically I created my own getIsVisible()
function on a BaseFragment
which recursively looks through any parents to find it's actual visible state. I am sure you could do something similar with onHiddenChanged()
by propagating it to all the child fragments.
I know this is old, but maybe someone could benefit from this knowledge :)