field это собственно твоё поле foo, но если ты в сеттере напишешь foo= value, то по идеи под капотом снова нужно вызвать сеттер где снова есть foo = value, рекурсия) поэтому для разграничения присваивания и какой то доп логики в set используется обозначение field для присваивания какого то значения
можешь тогда подсказать, как тут правильнее сделать, чтобы при откытии экрана значение у viewpager было изначально false и только потом, после обращения менялось