最初のFlutter app、最初のセクションの作成
7016 ワード
これはFlutter appを作成するガイドで、オブジェクト向けの言語を熟知すれば簡単に完成できます.ダートの経験はいらない
このガイドは2つの部分に分かれていて、codelabで見つけることができます.https://codelabs.developers.google.com/
1.Flutter appイニシエータの作成
2.追加パッケージの使用
3.ステータスのコントロールを追加
4.無限スクロールのListViewを作成
最初の部分でやることは
会社や名前などの情報を含むモバイルappが実現される.スクロールリストを実現する.図略
学習できること:
どのように1つを書いてandroidとiosの上でローカライズFlutter appを見ています.
Flutter appのインフラストラクチャ
パッケージの検索と使用
ホットロードを使用して迅速に開発
ステータスのあるコントロールを実装する方法
無限スクロールの怠け者のリストを作成する方法
1.Flutter appの作成
テンプレートに基づいて、簡単なFlutter appを作成し、https://flutter.io/get-started/test-drive/#create-appガイド名前をstartup_に変更namer.
lib/mainを編集します.dart
置換内容は次のとおりです.
実行、https://flutter.io/get-started/codelab/images/android-hello-world-frame.png、効果の表示
ヒント:
この例では、可視化された設計言語であるMaterial appを作成する.モバイルとweb規格に基づく.Flutterは多くのMaterialコントロールを提供しています.
メインメソッド、の=>オペレータは、メソッドの行であることを示します.
appはStatelessWidgetから継承され、それ自体がコントロールであり、Flutterではすべてのものがコントロールである.位置、補白、レイアウトを含む.
MaterialライブラリのScaffoldコントロールは、デフォルトの画面内のタイトル、内容を提供します.コントロールサブツリーは非常に複雑です.
1つのコントロールの主な仕事はbuild()方法を提供することである.コントロールの表示方法について説明します.
この例のようなコンテンツ部分は、テキストボックスのサブコントロールを含む中央のコントロールである.中央のコントロールで、サブツリーの内容を画面に表示します.
2.追加パッケージの使用
このステップでは、オープンソースのパッケージenblishの使用を開始します.wordsは、数千のよく使われる英語と方法を含んでいる.
可以在https://pub.dartlang.org/flutter/あるいは他のオープンソースパッケージのサーバのように、このパッケージが見つかります.
pubspecファイルはこれらのFlutter appの依存を管理している、pubspec.yaml依存に英語を追加
asで見てPackages getをクリックすると、パッケージがプロジェクトにインポートされます.コンソールに表示されます
Packages getを実行するとpubspecも生成する.lckファイルファイルにはインポートされたパッケージのバージョン番号が含まれています.
lib/mainでdartにパッケージをインポート
asはインポートしたライブラリをプロンプトします.後でインポートされた文字列のヒントがレンダリングされ、インポートされたパッケージが使用されていないことを示します.
英語の単語パッケージを使用して、Hello World文字列ではなくテキストを生成します.
コンテンツ部分の変更:
その他は少し前と同じです
実行後、ホットロードを使用
ステータスのあるコントロールを追加
無状態のコントロールは可変である.それを修正できないことを示します.すべての値はfinalです.
ステータスのコントロールがあり、ライフサイクル中にStateステータスが含まれています.の状態が変わります.ステータスのあるコントロールを実現するには少なくとも2つのクラスが必要である.ステータスクラスとコントロールクラスステータスのあるStatefulWidgetクラス自体も可変ではないが、ステータスは持続化作用があり、ライフサイクルでは可変である.
このステップでは、ステータスのあるコントロールを追加します.RandomWordsは、ステータスのあるクラス、RandomWordsStateを作成し、appに追加します.
メールでdartの下に最小化されたステータスクラスを作成
RandomWordsクラスに依存し、後で追加します.
main.dartの下に追加
ステータスクラスを追加すると、ideは欠落したbuildメソッドを完了します.1つのベースのbuildメソッドを追加し、文字ペアを生成します.MyAppからRandomWordsStateに移動
古いコードを削除します.その後、再実行します.
無限スクロールリストの作成
このステップでは、RandomWordsStateを拡張し、無限の文字ペアリストを生成する.ユーザがスクロールすると、リストにはListViewコントロールが表示され、無限に増加する.ListViewの工場構築方法は、怠惰なロードを許可します.
追加_SggestionsからRandomWordsStateクラスへ.を選択します.biggerFont変数を追加してフォントを大きくします.
追加_BuildSuggestions()メソッドはRandomWordsStateクラスにあり、このメソッドは推奨を表示するためにListViewを構築します.
ListViewクラスは構造属性を提供し、itemBuilder、この工場のコールバック方法は非同期方法である.2つのパラメータ、BuildContextとrowカーソルi.呼び出し時にカーソルが0から増加する.このモードは、ユーザがスクロールするときに無限に増加することを可能にする.
追加方法:
buildRow()メソッドを追加します.この方法はリスト項目を表示する.
更新_buildSuggestions()メソッド.ライブラリを直接呼び出して語を生成する.
ビルドメソッドを更新し、タイトルを変更し、メイン画面をRandomWordsコントロールに変更
appを再実行します.
どんなに遠くまで転がっても、文字ペアが生成されます.
このガイドは2つの部分に分かれていて、codelabで見つけることができます.https://codelabs.developers.google.com/
1.Flutter appイニシエータの作成
2.追加パッケージの使用
3.ステータスのコントロールを追加
4.無限スクロールのListViewを作成
最初の部分でやることは
会社や名前などの情報を含むモバイルappが実現される.スクロールリストを実現する.図略
学習できること:
どのように1つを書いてandroidとiosの上でローカライズFlutter appを見ています.
Flutter appのインフラストラクチャ
パッケージの検索と使用
ホットロードを使用して迅速に開発
ステータスのあるコントロールを実装する方法
無限スクロールの怠け者のリストを作成する方法
1.Flutter appの作成
テンプレートに基づいて、簡単なFlutter appを作成し、https://flutter.io/get-started/test-drive/#create-appガイド名前をstartup_に変更namer.
lib/mainを編集します.dart
置換内容は次のとおりです.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
body: Center(
child: Text('Hello World'),
),
),
);
}
}
実行、https://flutter.io/get-started/codelab/images/android-hello-world-frame.png、効果の表示
ヒント:
この例では、可視化された設計言語であるMaterial appを作成する.モバイルとweb規格に基づく.Flutterは多くのMaterialコントロールを提供しています.
メインメソッド、の=>オペレータは、メソッドの行であることを示します.
appはStatelessWidgetから継承され、それ自体がコントロールであり、Flutterではすべてのものがコントロールである.位置、補白、レイアウトを含む.
MaterialライブラリのScaffoldコントロールは、デフォルトの画面内のタイトル、内容を提供します.コントロールサブツリーは非常に複雑です.
1つのコントロールの主な仕事はbuild()方法を提供することである.コントロールの表示方法について説明します.
この例のようなコンテンツ部分は、テキストボックスのサブコントロールを含む中央のコントロールである.中央のコントロールで、サブツリーの内容を画面に表示します.
2.追加パッケージの使用
このステップでは、オープンソースのパッケージenblishの使用を開始します.wordsは、数千のよく使われる英語と方法を含んでいる.
可以在https://pub.dartlang.org/flutter/あるいは他のオープンソースパッケージのサーバのように、このパッケージが見つかります.
pubspecファイルはこれらのFlutter appの依存を管理している、pubspec.yaml依存に英語を追加
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.0
english_words: ^3.1.0
asで見てPackages getをクリックすると、パッケージがプロジェクトにインポートされます.コンソールに表示されます
> flutter packages get
Running "flutter packages get" in startup_namer...
Process finished with exit code 0
Packages getを実行するとpubspecも生成する.lckファイルファイルにはインポートされたパッケージのバージョン番号が含まれています.
lib/mainでdartにパッケージをインポート
import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';
asはインポートしたライブラリをプロンプトします.後でインポートされた文字列のヒントがレンダリングされ、インポートされたパッケージが使用されていないことを示します.
英語の単語パッケージを使用して、Hello World文字列ではなくテキストを生成します.
コンテンツ部分の変更:
import 'package:english_words/english_words.dart';
body: Center(
//child: Text('Hello World'), // Replace the highlighted text...
child: Text(wordPair.asPascalCase), // With this highlighted text.
),
その他は少し前と同じです
実行後、ホットロードを使用
ステータスのあるコントロールを追加
無状態のコントロールは可変である.それを修正できないことを示します.すべての値はfinalです.
ステータスのコントロールがあり、ライフサイクル中にStateステータスが含まれています.の状態が変わります.ステータスのあるコントロールを実現するには少なくとも2つのクラスが必要である.ステータスクラスとコントロールクラスステータスのあるStatefulWidgetクラス自体も可変ではないが、ステータスは持続化作用があり、ライフサイクルでは可変である.
このステップでは、ステータスのあるコントロールを追加します.RandomWordsは、ステータスのあるクラス、RandomWordsStateを作成し、appに追加します.
メールでdartの下に最小化されたステータスクラスを作成
class RandomWordsState extends State {
// TODO Add build method
}
RandomWordsクラスに依存し、後で追加します.
main.dartの下に追加
class RandomWords extends StatefulWidget {
@override
RandomWordsState createState() => new RandomWordsState();
}
ステータスクラスを追加すると、ideは欠落したbuildメソッドを完了します.1つのベースのbuildメソッドを追加し、文字ペアを生成します.MyAppからRandomWordsStateに移動
class RandomWordsState extends State {
@override
Widget build(BuildContext context) {
final wordPair = WordPair.random();
return Text(wordPair.asPascalCase);
}
}
古いコードを削除します.その後、再実行します.
無限スクロールリストの作成
このステップでは、RandomWordsStateを拡張し、無限の文字ペアリストを生成する.ユーザがスクロールすると、リストにはListViewコントロールが表示され、無限に増加する.ListViewの工場構築方法は、怠惰なロードを許可します.
追加_SggestionsからRandomWordsStateクラスへ.を選択します.biggerFont変数を追加してフォントを大きくします.
class RandomWordsState extends State {
final _suggestions = [];
final _biggerFont = const TextStyle(fontSize: 18.0);
...
}
追加_BuildSuggestions()メソッドはRandomWordsStateクラスにあり、このメソッドは推奨を表示するためにListViewを構築します.
ListViewクラスは構造属性を提供し、itemBuilder、この工場のコールバック方法は非同期方法である.2つのパラメータ、BuildContextとrowカーソルi.呼び出し時にカーソルが0から増加する.このモードは、ユーザがスクロールするときに無限に増加することを可能にする.
追加方法:
class RandomWordsState extends State {
...
Widget _buildSuggestions() {
return ListView.builder(
padding: const EdgeInsets.all(16.0),
// The itemBuilder callback is called once per suggested word pairing,
// and places each suggestion into a ListTile row.
// For even rows, the function adds a ListTile row for the word pairing.
// For odd rows, the function adds a Divider widget to visually
// separate the entries. Note that the divider may be difficult
// to see on smaller devices.
itemBuilder: (context, i) {
// Add a one-pixel-high divider widget before each row in theListView.
if (i.isOdd) return Divider();
// The syntax "i ~/ 2" divides i by 2 and returns an integer result.
// For example: 1, 2, 3, 4, 5 becomes 0, 1, 1, 2, 2.
// This calculates the actual number of word pairings in the ListView,
// minus the divider widgets.
final index = i ~/ 2;
// If you've reached the end of the available word pairings...
if (index >= _suggestions.length) {
// ...then generate 10 more and add them to the suggestions list.
_suggestions.addAll(generateWordPairs().take(10));
}
return _buildRow(_suggestions[index]);
}
);
}
}
buildRow()メソッドを追加します.この方法はリスト項目を表示する.
Widget _buildRow(WordPair pair) {
return ListTile(
title: Text(
pair.asPascalCase,
style: _biggerFont,
),
);
}
更新_buildSuggestions()メソッド.ライブラリを直接呼び出して語を生成する.
@override
Widget build(BuildContext context) {
final wordPair = WordPair.random(); // Delete these two lines.
return Text(wordPair.asPascalCase);
return Scaffold (
appBar: AppBar(
title: Text('Startup Name Generator'),
),
body: _buildSuggestions(),
);
}
ビルドメソッドを更新し、タイトルを変更し、メイン画面をRandomWordsコントロールに変更
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Startup Name Generator',
home: RandomWords(),
);
}
}
appを再実行します.
どんなに遠くまで転がっても、文字ペアが生成されます.