名称“Column”在库“package:flutter/src/widgets/basic.dart”和“package:googleapis/analytics/v3.dart”中定义

问题描述 投票:0回答:1

我是 Flutter 新手,正在制作一个从谷歌驱动器读取文件的应用程序。它工作正常,但现在就像是从其他地方读取小部件“Column”。如果我写“行”而不是“列”就可以了。只有当我使用 Column 时才会出现这种情况。我检查了googleapi包,没有找到任何名为column的类。下面我附上代码和图片。

import 'dart:math';
    import 'package:file_picker/file_picker.dart';
    import 'package:flutter/material.dart';
    //import 'package:flutterdrive/googleDrive.dart';

import 'dart:async';
import 'dart:convert' show json;
import 'dart:io';
import 'package:firebase_core/firebase_core.dart';
import 'package:googleapis/analytics/v3.dart';
import "package:http/http.dart" as http;
import 'package:google_sign_in/google_sign_in.dart';
import 'package:googleapis/drive/v3.dart' as drive;
import 'package:firebase_auth/firebase_auth.dart';
//import 'package:firebase_auth/firebase_auth.dart';
import 'package:csv/csv.dart';
import 'dart:convert';
import 'package:path_provider/path_provider.dart';
import 'dart:core';

GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: <String>[
    'email',
    'https://www.googleapis.com/auth/drive.readonly',
  ],
);

void main() {
  runApp(
    MaterialApp(
      title: 'Google Sign In',
      debugShowCheckedModeBanner: false,
      home: SignInDemo(),
    ),
  );
}

class SignInDemo extends StatefulWidget {
  @override
  State createState() => SignInDemoState();
}

class AuthClient extends http.BaseClient {
  final http.Client _baseClient;
  final Map<String, String> _headers;

  AuthClient(this._baseClient, this._headers);

  @override
  Future<http.StreamedResponse> send(http.BaseRequest request) {
    request.headers.addAll(_headers);
    return _baseClient.send(request);
  }
}

class SignInDemoState extends State<SignInDemo> {
  GoogleSignInAccount? _currentUser;
  List<drive.File> _documents = [];
  List<String?> fileIDs = [];
  List<List<dynamic>> csvTables = [];

  // Lista de archivos en la clase signindemo

  @override
  void initState() {
    super.initState();
    _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount? account) {
      setState(() {
        _currentUser = account;
      });
      if (_currentUser != null) {
        //print('ex');
        _getDocuments();
      }
    });
    _googleSignIn.signInSilently();
  }

  void _getDocuments() async {

    print('executing');

    final client = http.Client();
    var header = await _currentUser?.authHeaders;
    var authClient = AuthClient(client, header!);
    var api = drive.DriveApi(authClient);
    String? url, id;

    var pageToken = null;
    _documents.clear();
    do {
      // TODO: Change q to search for files, like "name contains 'pdf'"
      // api.files.export(fileId, mimeType);
      var fileList = await api.files.list(
          q: "name contains 'DATA1.csv'",
          pageSize: 20,
          pageToken: pageToken,
          supportsAllDrives: true,
          spaces: "drive",
          $fields: "nextPageToken, files(id, name, mimeType, thumbnailLink)");
      pageToken = fileList.nextPageToken;

      print('paju');

      _documents.addAll(fileList.files!);
      print(_documents.length);
      for(var i in _documents){
        print(i.id ?? '');
        print(i.name ?? '');
      }




      // print(_documents.first.toString());
    } while (pageToken != null);




    setState(() {});
  }

  Future<void> _handleSignIn() async {
    try {
      await _googleSignIn.signIn();
    } catch (error) {
      print(error);
    }
  }

  Future<void> _handleSignOut() => _googleSignIn.disconnect();

 // @override
  Widget _buildBody() {

      return Column(
        mainAxisAlignment: MainAxisAlignment.spaceAround,
        children: <Widget>[
          ListTile(
            leading: GoogleUserCircleAvatar(
              identity: _currentUser!,
            ),
            title: Text(_currentUser!.displayName ?? ''),
            subtitle: Text(_currentUser!.email ?? ''),
          ),
          const Text("Signed in successfully."),
          ElevatedButton(
            child: const Text('Get documents'),
            onPressed: _getDocuments,
          ),
          ElevatedButton(
            child: const Text('SIGN Out'),
            onPressed: _handleSignOut,
          )

        ],
      );
    }


    @override
    Widget build(BuildContext context) {
      return Scaffold(
          appBar: AppBar(
            title: const Text('Google Sign In'),
          ),
          body: ConstrainedBox(
            constraints: const BoxConstraints.expand(),
            child: _buildBody(),
          ));
    }
  }

enter image description here

flutter dart google-api
1个回答
0
投票

错误消息通知您

Column
在包
flutter
googleapis
中定义。

您可以尝试隐藏重复的类定义(或者使用导入前缀)。

import 'package:googleapis/analytics/v3.dart' hide Column;
© www.soinside.com 2019 - 2024. All rights reserved.