xxxxxxxxxx
Can I use setState for just one widget rather than whole page?
--> You can use a StatefulBuilder for that. A StatefulBuilder gives you a separated setState as a builder parameter, and that setState will only affect the state under the builder.
Flutter API Documentation has a very clear example for that at https://api.flutter.dev/flutter/widgets/StatefulBuilder-class.html.