import 'package:flutter/material.dart';

import 'package:rxflare/rxflare.dart';

void main() {

  runApp(const MyApp());

}

class ItemModel {

  final int id;

  final RxState<int> count;

  ItemModel({required this.id, required this.count});

}

class MyController {

  final items = List.generate(9999000, (i) => ItemModel(id: i, count: RxState<int>(0))).obsList;

}

class MyApp extends StatelessWidget {

  const MyApp({super.key});

  @override

  Widget build(BuildContext context) {

    return MaterialApp(title: 'RxFlare List Test', home: const MyHomePage());

  }

}

class MyHomePage extends StatefulWidget {

  const MyHomePage({super.key});

  @override

  State<MyHomePage> createState() => _MyHomePageState();

}

class _MyHomePageState extends State<MyHomePage> {

  final controller = MyController();

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(title: const Text('RxFlare List Test')),

      body: ListView.builder(

        itemCount: controller.items.length,

        itemBuilder: (context, index) {

          final item = controller.items[index];

          return ItemTile(item: item); // ← 抽成独立 Widget(重要!)

        },

      ),

    );

  }

}

class ItemTile extends StatelessWidget {

  final ItemModel item;

  const ItemTile({super.key, required this.item});

  @override

  Widget build(BuildContext context) {

    return Rx(

      () => ListTile(

        title: Text('Item ${item.id}'),

        subtitle: Text('Count: ${item.count.value}'),

        trailing: IconButton(icon: const Icon(Icons.add), onPressed: () => item.count.value++),

      ),

    );

  }

}

应该极致了

更多推荐