在Flutter中,如果你想要实现一个局部刷新的效果,你可以使用setState方法来更新特定的Widget。这是一个简单的例子:
import 'package:flutter/material.dart';
 
void main() => runApp(MyApp());
 
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}
 
class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}
 
class _HomePageState extends State<HomePage> {
  int _counter = 0;
 
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}在这个例子中,_HomePageState类维护了一个状态变量_counter。当点击FloatingActionButton时,_incrementCounter方法被调用,该方法内部通过setState方法更新了_counter的值,Flutter会自动比较新旧状态,并且只会更新Text Widget来显示新的计数值,而不是重新渲染整个页面。这样就实现了局部刷新的效果。