![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
最近、お仕事でFlutterを使ってアプリ開発しています
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
![魔理沙【悲しみ】](http://studio-cross.club/icon/marisa_04.png)
UnityよりもFlutterのほうが需要あるしな(汗
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
もくじ
解説動画もあるよ!
![クロ【喜び】](http://studio-cross.club/icon/kuro_02.png)
こちらを見ていただけると嬉しいです!
![霊夢【悲しみ】](http://studio-cross.club/icon/reimu_04.png)
内容自体はあまり進んでないわね
![魔理沙【楽しい】](http://studio-cross.club/icon/marisa_05.png)
このアプリ制作は前座のつもりだったから1回で終えるはずだったんだけどね
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
どうしても時間がかかってしまったというわけですね
Githubにプロジェクトをアップロードしてます!
Githubのプロジェクトリンク:https://github.com/Syungetu/text_editor
![クロ【喜び】](http://studio-cross.club/icon/kuro_02.png)
ソースを見せろ!といった方はGithubにプロジェクトファイルを上げてますのでご確認ください~
![霊夢【悲しみ】](http://studio-cross.club/icon/reimu_04.png)
![魔理沙【喜び】](http://studio-cross.club/icon/marisa_02.png)
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
動画について補足的解説をします
![クロ【悲しみ】](http://studio-cross.club/icon/kuro_05.png)
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
とはいえ深いところまでは解説は出来ないから勘弁してね
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
StatelessWidgetとStatefulWidgetの違い
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
もうちょっと解説させてください
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
動画内では静的か動的かの違いって説明したわね
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
ユーザーが操作するとかそういうのも動的って言ったりするしね
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
本来変化しないような要素が変化するときは「動的」になるといった感じかしらね
動的処理の例
String inputText = “入力なし”;
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
// 入力されたテキスト
Text(inputText),
// テキスト入力
onChanged: (String value) {
// 入力されたテキストを反映する
inputText = value;
}
),
// テキスト表示を更新する
TextButton(
onPressed: () {
// 画面を更新する
setState((){});
},
child: Text(“入力確定”),
),
],
),
);
}
![魔理沙【楽しい】](http://studio-cross.club/icon/marisa_05.png)
とりあえず、上のようなソースコードがあったとするぞ
// テキスト入力
onChanged: (String value) {
// 入力されたテキストを反映する
inputText = value;
}
),
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
Text(inputText ),
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
TextButton(
onPressed: () {
// 画面を更新する
setState((){});
},
child: Text(入力確定),
),
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
ボタンを押したら「setState」を呼ぶようにしてるぞ
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
とりあえず「Container」で囲っておけ!
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
// Widget外の余白
margin: EdgeInsets.only(
top: 0,
bottom: 0,
left: 5,
right: 5,
),
// Widget内の余白
padding: EdgeInsets.only(
top: 5,
bottom: 5,
left: 0,
right: 0,
),
child: Text(“位置調整テキスト”),
),
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
余白や幅や高さを指定しているわね
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
Imageでの画像表示方法
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
表示したいときとかよくあるわよね
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
Image.asset(‘images/UI/hogehoge.png’), // ネットワークから画像を読み込む
Image.network(‘https://hogehoge.com/sample.jpg’),
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
ただ、ローカルで表示するときにはpubspec.yamlの編集が必要です
pubspec.yamlの編集
assets:
– images/
– images/UserIcon/
– images/UI/
# – images/a_dot_burr.jpeg
# – images/a_dot_ham.jpeg
![クロ【普通】](http://studio-cross.club/icon/kuro_01.png)
コンパイル時にココを見てアプリに内包するみたいです
次回はリスト表示や読み込み待ちの処理とかを開設予定です
![霊夢【普通】](http://studio-cross.club/icon/reimu_01.png)
今回は動画で解説したことが多くて少なくなってしまったわね
![魔理沙【普通】](http://studio-cross.club/icon/marisa_01.png)
![妖夢【普通】](http://studio-cross.club/icon/youmu_01.png)
“Flutterプログラム解説 簡単なメモアプリを作成してみたよ! その1 UI作成編” への1件の返信