fixed to do layout only one time when relaying out