add onviewchange listener