future builder

import 'dart:io';
import 'package:flutter/material.dart';

void main() async {
  // var result = await Process.run('find', ['/tmp']);
  // print(result.stdout.toString());
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("List View Text")),
        body: AppBody(),
      ),
    );
  }
}

class AppBody extends StatefulWidget {
  @override
  State<AppBody> createState() {
    return _AppBodyState();
  }
}

class _AppBodyState extends State<AppBody> {
  Future<ProcessResult>? processResult;

  @override
  void initState() {
    processResult = Process.run('find', ['/tmp']);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
        future: processResult,
        builder: (context, snapshot) {
          Widget result = const Text("");
          var processResult = snapshot.data?.stdout.toString();
          if (processResult != null) {
            result = SelectableText(processResult);
          }
          return SingleChildScrollView(child: result);
        });
  }
}

Comments