optimize changePage widget