ようこそFlutter野郎どもよ!!!
軽い開発環境でモバイルアプリ開発ができるなんて最高じゃねえか
AndroidもiOSも両方行ける、まさに漢のためのツールだな
https://flutter.dev/
前スレ
Flutterやろうよ!!!
https://mevius.5ch.net/test/read.cgi/tech/1527919660/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Flutterやろうよ!!! 2
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8f5f-+np5)
2021/01/30(土) 12:22:39.97ID:4Fw02M/h048デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 15:50:37.78ID:pJAT2BWO049デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 15:53:57.98ID:F0c/bXFP0 >>48
そんなん、中身固定の初心者向けのサンプルレベルやん。
やりたいのは、ListViewの見せ方を動的に変えたいってことだよ。
final var widgets[] = {
_buildSimpleListItem,
_buildIconListItem,
// 以下略
};
Widget _buildSimpleListItem(int indexItem) {
return Text(_listItems[indexItem]);
};
Widget _buildIconListItem(int indexItem) {
return ListTile{
leading: icon,
title:Text(_listItems[indexItem]);
);
};
てな書き方でいけるんだっけ?
そんなん、中身固定の初心者向けのサンプルレベルやん。
やりたいのは、ListViewの見せ方を動的に変えたいってことだよ。
final var widgets[] = {
_buildSimpleListItem,
_buildIconListItem,
// 以下略
};
Widget _buildSimpleListItem(int indexItem) {
return Text(_listItems[indexItem]);
};
Widget _buildIconListItem(int indexItem) {
return ListTile{
leading: icon,
title:Text(_listItems[indexItem]);
);
};
てな書き方でいけるんだっけ?
50デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 15:59:48.39ID:pJAT2BWO0 ItemBuilder1つでそのListViewのインスタンスをプロパティで持つなりしてsetStateすればいくらでも見た目変えられるだろ、頭使え
51デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 16:01:15.50ID:pJAT2BWO0 ListViewに渡すパラメータをプロパティで持つ だった
52デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 16:11:36.00ID:F0c/bXFP0 >>50-51
全く理解してないことが良く判った。
リストに表示する中身を、_listItems (例: List<String>) で保持して、_listMode
は、同じPage内に配置した DropdownButton 等と紐付いていて、選択を切り替え
た時点でsetState()してページ内のListViewの見せ方を変えたいの。
一応、やりたいこと自体は、糞な書き方でできることは確認してる。 説明の
都合上、ScaffoldのbodyはListViewだけにしてるけど、実際はもっと複雑。
全く理解してないことが良く判った。
リストに表示する中身を、_listItems (例: List<String>) で保持して、_listMode
は、同じPage内に配置した DropdownButton 等と紐付いていて、選択を切り替え
た時点でsetState()してページ内のListViewの見せ方を変えたいの。
一応、やりたいこと自体は、糞な書き方でできることは確認してる。 説明の
都合上、ScaffoldのbodyはListViewだけにしてるけど、実際はもっと複雑。
53デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 16:16:14.01ID:pJAT2BWO0 >>52
だから、ListViewは1つでreturnする中身を変えりゃいいじゃん
だから、ListViewは1つでreturnする中身を変えりゃいいじゃん
54デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 16:23:30.72ID:pJAT2BWO0 return widgets[_listMode][index]; で簡単に出来るだろw
55デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 16:41:21.24ID:F0c/bXFP0 >>53
例えば、ListView.builderを1つにして、
body: ListView.builder(
itemBuilder: _getlistItem,
// 略
);
Widget _getlistItem(int indexItem) {
switch(_listMode)
{
case 0:
return Text(_listItems[indexItem]);
// 中略
break;
case 1:
return ListTile{
leading: icon,
title:Text(_listItems[indexItem]));
break;
}
と、itemBuilderに渡す関数も共通化して、その関数内でswitch〜caseで分岐して、
返すWidgetを変えてもいいんだが、本当にやりたいのは、switch〜caseを書く
のではなく、Widgetを返す関数配列にしたいってこと。
例えば、ListView.builderを1つにして、
body: ListView.builder(
itemBuilder: _getlistItem,
// 略
);
Widget _getlistItem(int indexItem) {
switch(_listMode)
{
case 0:
return Text(_listItems[indexItem]);
// 中略
break;
case 1:
return ListTile{
leading: icon,
title:Text(_listItems[indexItem]));
break;
}
と、itemBuilderに渡す関数も共通化して、その関数内でswitch〜caseで分岐して、
返すWidgetを変えてもいいんだが、本当にやりたいのは、switch〜caseを書く
のではなく、Widgetを返す関数配列にしたいってこと。
56デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 16:44:34.07ID:pJAT2BWO0 >>55
ならsetStateする前にListViewしたいwidget全要素作れば?
ならsetStateする前にListViewしたいwidget全要素作れば?
57デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 16:47:35.00ID:F0c/bXFP0 >>54
だから、widgets[][]を、どこで初期化するの?
中身はファイル名の一覧とか可変が前提だよ。
それと、使うWidgetは、表示スタイルによってどれか1つで済むのに、二重のfor
ループを廻して、毎回全部を作りなおすのか? 間違いではないが、糞プログラマ
認定だな。
だから、widgets[][]を、どこで初期化するの?
中身はファイル名の一覧とか可変が前提だよ。
それと、使うWidgetは、表示スタイルによってどれか1つで済むのに、二重のfor
ループを廻して、毎回全部を作りなおすのか? 間違いではないが、糞プログラマ
認定だな。
58デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 16:49:29.40ID:F0c/bXFP0 >>56
なぜ、ListView.builderを使うのか、理解していないことが良く判った。
なぜ、ListView.builderを使うのか、理解していないことが良く判った。
59デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 17:03:39.75ID:pJAT2BWO060デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 17:12:16.78ID:pJAT2BWO0 > だから、widgets[][]を、どこで初期化するの?
setStateする前だって言ってんだろ。
var list = []; って知ってる?全部作らなくていいの分かる?
その態度で、ど素人かよ・・向いてないから辞めな
setStateする前だって言ってんだろ。
var list = []; って知ってる?全部作らなくていいの分かる?
その態度で、ど素人かよ・・向いてないから辞めな
61デフォルトの名無しさん (ワッチョイ 3790-Zn1k)
2021/02/06(土) 17:22:25.88ID:MVtJKBn70 >>49
別にこれでよくね?
IndexedWidgetBuilder関数自体をswitchで返すようにしてListView.Builderの記述を一つにするとか細かいのはあるが
つか、widgets[]何かいらんだろ?
別にこれでよくね?
IndexedWidgetBuilder関数自体をswitchで返すようにしてListView.Builderの記述を一つにするとか細かいのはあるが
つか、widgets[]何かいらんだろ?
62デフォルトの名無しさん (ワッチョイ 3790-Zn1k)
2021/02/06(土) 17:25:30.28ID:MVtJKBn70 今回はListView同士だが、表示モードでリスト表示やグリッド表示切り替えたりする機能じ実装したいんだろ?
63デフォルトの名無しさん (ワッチョイ 3790-Zn1k)
2021/02/06(土) 17:28:26.46ID:MVtJKBn70 ごめん>>55とか見てなかった
64デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 17:31:01.68ID:pJAT2BWO0 そもそもitemBuilderに渡せるクロージャの型は決まってるのに、そこでやりたがろうとするのか間違い。
returnする中身を_listModeで変えりゃいいだけ。
returnする中身を_listModeで変えりゃいいだけ。
65デフォルトの名無しさん (ワッチョイ 3790-Zn1k)
2021/02/06(土) 17:36:00.31ID:MVtJKBn70 とりあえず、>>55はdartで十分スマートだから問題ないといっておく
Widgetを返す関数配列とか余計なことすると一人よがりのプログラムになりそうとだけ言っておく
仮にそこまでやって何の利点があるのか知らんが
Widgetを返す関数配列とか余計なことすると一人よがりのプログラムになりそうとだけ言っておく
仮にそこまでやって何の利点があるのか知らんが
66デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 17:43:49.14ID:pJAT2BWO0 もしもlistの件数が多いなら、flutterはreusableCellみたいな機構/考え方がないから、ScrollControllerでスクロールを監視して、止まったら実widgetを生成するとかの施策を作る方がよっぽどメリットある。
さらにそんな感じのListViewが複数あるならリビルト抑制のためにInheritedModel化しなければならない。
さらにそんな感じのListViewが複数あるならリビルト抑制のためにInheritedModel化しなければならない。
67デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 19:10:30.57ID:pJAT2BWO0 糞プログラマwのオレが余計なアドバイスしちゃったかなw
まぁ3年くらいは諦めずに続けてみる事だwww
まぁ3年くらいは諦めずに続けてみる事だwww
68デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/06(土) 19:29:48.12ID:0l8rGy4F0 >>55
dartのwidgetはプロパティ変更のためにはwidgetのnewが必ず伴わないといけないので、widget配列にインスタンスを先に定義してその参照を返すだけではrebuildされず画面更新されない。
コンストラクタのメンバーにFuture渡すとかすればよろし。
dartのwidgetはプロパティ変更のためにはwidgetのnewが必ず伴わないといけないので、widget配列にインスタンスを先に定義してその参照を返すだけではrebuildされず画面更新されない。
コンストラクタのメンバーにFuture渡すとかすればよろし。
69デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/06(土) 22:06:19.05ID:F0c/bXFP0 >>68
とりあえず、>>49のwidgets[]は、型は便宜上varとしているが、Widgetを返す
関数を保持されることを意図したつもり。
Widget _buildSimpleListItem(int indexItem)や、Widget _buildIconListItem
(int indexItem)は、Widgetを返す関数の実装。
配列要素である関数自体は変わらないが定数ではないからconstではなく、final を
付けてみたが、final付けるとエラーになるかも。
ListView.builder()は、itemBuilderに渡す関数を.builder内部で繰り返し呼び出して、
Widgetを作るので、わざわざwidgets[][]なんて持つ必要がないという理解。
当然、ListView.builder()はHogeHogePageのbuild内で呼び出しているので、
_listModeと紐付いたDropdownButtonのonChanged: で、
(value) => setState(() { _listMode = menu.indexOf(value); } ),
てな感じで更新を掛ける。
とりあえず、>>49のwidgets[]は、型は便宜上varとしているが、Widgetを返す
関数を保持されることを意図したつもり。
Widget _buildSimpleListItem(int indexItem)や、Widget _buildIconListItem
(int indexItem)は、Widgetを返す関数の実装。
配列要素である関数自体は変わらないが定数ではないからconstではなく、final を
付けてみたが、final付けるとエラーになるかも。
ListView.builder()は、itemBuilderに渡す関数を.builder内部で繰り返し呼び出して、
Widgetを作るので、わざわざwidgets[][]なんて持つ必要がないという理解。
当然、ListView.builder()はHogeHogePageのbuild内で呼び出しているので、
_listModeと紐付いたDropdownButtonのonChanged: で、
(value) => setState(() { _listMode = menu.indexOf(value); } ),
てな感じで更新を掛ける。
70デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 22:16:32.47ID:pJAT2BWO0 >Widgetを返す関数
これが無駄
これが無駄
71デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/06(土) 23:04:48.80ID:pJAT2BWO0 ListView.builder() はListView内のセル1つのコンテンツを作るわけじゃなくて、ListViewという仕組みを作るものだということを理解しよう。
そのコンテンツはreturnするwidgetによって切り替えよう。
そのコンテンツはreturnするwidgetによって切り替えよう。
72デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 00:02:01.56ID:AkpxQPsh0 どうしてもitemBuilderを切り替えたいなら、
var _itemBuilders = <Widget Function(BuildContext, int)>[];
・・
itemBuilder: _itemBuilders[_listMode]
・・
ただ、itemCount:の明示が分かりにくくなり(がち)でバグの元になるので普通はこう書かないだろう。。
var _itemBuilders = <Widget Function(BuildContext, int)>[];
・・
itemBuilder: _itemBuilders[_listMode]
・・
ただ、itemCount:の明示が分かりにくくなり(がち)でバグの元になるので普通はこう書かないだろう。。
73デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/07(日) 01:02:21.41ID:5iRjnGor0 >>70-72
何も理解しとらんな。ListView.builder()自体は、ListViewを返すが、itemBuilder
が、ListView内に表示する個々のアイテム(Widget)を作るための関数だよ。
内部実装まで追いかけてはいないが、実際は、ListView表示に必要なスクロール範囲
内に見える部分のindex〜index+nの分だけアイテムを作って描画しているのでは
ないかと思う。 これはWindowsの仮想リストビューと同じような実装で、珍しく
もない。
だからListView.builder()の引数、itemCount: null, で無制限スクロールできる。
何も理解しとらんな。ListView.builder()自体は、ListViewを返すが、itemBuilder
が、ListView内に表示する個々のアイテム(Widget)を作るための関数だよ。
内部実装まで追いかけてはいないが、実際は、ListView表示に必要なスクロール範囲
内に見える部分のindex〜index+nの分だけアイテムを作って描画しているのでは
ないかと思う。 これはWindowsの仮想リストビューと同じような実装で、珍しく
もない。
だからListView.builder()の引数、itemCount: null, で無制限スクロールできる。
74デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 01:14:57.97ID:AkpxQPsh0 ItemBuilderは1コンテンツのコンテナを提供してるだけだアホ
75デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 01:22:23.18ID:AkpxQPsh0 >内部実装まで追いかけてはいないが、実際は、ListView表示に必要なスクロール範囲内に見える部分のindex〜index+nの分だけアイテムを作って描画しているのでは
ないかと思う。
スクロールした分全部作ってる。見えてる分じゃない。
ないかと思う。
スクロールした分全部作ってる。見えてる分じゃない。
76デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 01:24:19.39ID:AkpxQPsh0 >>73
何も理解してないのはオマエw
何も理解してないのはオマエw
77デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/07(日) 01:38:30.26ID:5iRjnGor0 >>74-76
return widget[][];なんて書く低能は、いい加減消えてくれないかな?
スクロールした分を全部作り直してたら、アイテム数が増えればリソース食うし、
等比級数的に遅くなるから、必要な部分だけデータを要求して再描画するのは
ごく普通の実装なのだが?
return widget[][];なんて書く低能は、いい加減消えてくれないかな?
スクロールした分を全部作り直してたら、アイテム数が増えればリソース食うし、
等比級数的に遅くなるから、必要な部分だけデータを要求して再描画するのは
ごく普通の実装なのだが?
78デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 01:44:43.73ID:AkpxQPsh0 >>77
オマエが消えろカス
オマエが消えろカス
79デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/07(日) 01:46:24.73ID:AkpxQPsh0 >>77
あとお前ITセンス無いよ
あとお前ITセンス無いよ
80デフォルトの名無しさん (ワッチョイ 5763-JWMU)
2021/02/07(日) 17:16:20.79ID:NoxA0gm+0 休日って感じでええな
81デフォルトの名無しさん (ブーイモ MM1b-+irq)
2021/02/07(日) 17:37:11.35ID:VQW6QCV3M Dart「私のために争わないで!」
82デフォルトの名無しさん (ワッチョイ b75f-Hbjn)
2021/02/08(月) 21:04:17.25ID:fXU526Wm0 class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
この
const MyApp({Key? key}) : super(key: key);
っていろんなサンプルコードにおまじないのように存在しますが
何の意味があるコードでしょうか?
const MyApp({Key? key}) : super(key: key);
この
const MyApp({Key? key}) : super(key: key);
っていろんなサンプルコードにおまじないのように存在しますが
何の意味があるコードでしょうか?
83デフォルトの名無しさん (ブーイモ MMcf-Wgeg)
2021/02/08(月) 22:16:34.05ID:U8Md53kEM それがコンストラクタであることはわかる?
84デフォルトの名無しさん (ワッチョイ b75f-Hbjn)
2021/02/08(月) 22:23:55.78ID:fXU526Wm0 わかりません><
85デフォルトの名無しさん (ワッチョイ 1763-kbB0)
2021/02/08(月) 22:50:39.51ID:Vrbohkxj086デフォルトの名無しさん (テテンテンテン MM8f-XFXP)
2021/02/09(火) 00:49:39.26ID:bUho71ueM いつみてもnamedの書き方がキモいな
💩dartは
💩dartは
87デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/09(火) 05:41:27.49ID:4s6aj3EG0 >>82
継承元のコンストラクタにkeyを渡してるだけ。
継承元のコンストラクタにkeyを渡してるだけ。
88デフォルトの名無しさん (スププ Sdbf-bFiF)
2021/02/09(火) 08:27:56.90ID:GPf+a2VOd そもそもkeyて何に使うの?
89デフォルトの名無しさん (スフッ Sdbf-smwP)
2021/02/09(火) 11:09:42.19ID:QUiKVEcEd >>85
それは何でも同じやん。
それは何でも同じやん。
90デフォルトの名無しさん (ワッチョイ 1763-kbB0)
2021/02/09(火) 11:25:03.68ID:nKesl+r+091デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/09(火) 11:50:18.06ID:4s6aj3EG092デフォルトの名無しさん (スフッ Sdbf-BUOo)
2021/02/09(火) 12:49:34.02ID:anEuZ52ed >>91
横からだけどありがとう
横からだけどありがとう
93デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 15:11:33.26ID:ANc0E1ay0 flutterはともかくdartは分かりやすい。初学者向け。
94デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 15:19:45.18ID:ANc0E1ay0 ただ仕組みを理解してないと結構勘違いする。
例えばプラグインを作る時のevent subscriptionはbroadcastStreamなのでcontroller.closeが出来ない。
nullが返ってきたら終わりみたいな処理を待つには自分でStreamControllerを作ってそのStreamをFuture.waitするとか。
例えばプラグインを作る時のevent subscriptionはbroadcastStreamなのでcontroller.closeが出来ない。
nullが返ってきたら終わりみたいな処理を待つには自分でStreamControllerを作ってそのStreamをFuture.waitするとか。
95デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/09(火) 18:11:24.23ID:KQnFnSaF0 >>93-94
シッタカ坊や、まだいたのかぃ?
>>74-76
> スクロールした分全部作ってる。見えてる分じゃない。
> 何も理解してないのはオマエw
とりあえず、>>49 のサンプルを改造して、ListView.builder()のitemBuilder
に指定したコールバック関数が、いつのタイミングで、何回呼び出されているか
確認できるよう、
Widget _buildSimpleListItem(BuildContext context, int index)
{
print("_buildSimpleListItem(${index})");
return Text(_listItems[index]);
}
として、ListView.builder()のitemCount: に、画面に絶対収まり切らない数
(適当に500)を指定した、デバッグ実行してみた。
シッタカ坊や、まだいたのかぃ?
>>74-76
> スクロールした分全部作ってる。見えてる分じゃない。
> 何も理解してないのはオマエw
とりあえず、>>49 のサンプルを改造して、ListView.builder()のitemBuilder
に指定したコールバック関数が、いつのタイミングで、何回呼び出されているか
確認できるよう、
Widget _buildSimpleListItem(BuildContext context, int index)
{
print("_buildSimpleListItem(${index})");
return Text(_listItems[index]);
}
として、ListView.builder()のitemCount: に、画面に絶対収まり切らない数
(適当に500)を指定した、デバッグ実行してみた。
96デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/09(火) 18:11:38.83ID:KQnFnSaF0 案の定、自分の想像通り全てのアイテムは作成していなかった。 ただ、なぜか
判らないが、リスト表示範囲にピッタリ収まる数より少し余分に呼ばれていた。
どうやら、ListViewの実際の表示サイズではなく、AppBar等を含めたディス
プレイの表示ピクセル数に収まるアイテム数のWidgetを作成しているっぽい。
また、スクロール操作した際も、上/下方向とも移動した行数の分だけ呼ばれ、
スクロール前後で範囲から外れない分はおそらく保持されたままで呼ばれなかった。
「ITセンス無い」なんて言っちゃう時点で、いつもの意識高い系だと思ったが、
これで(ワッチョイ d701-kh8G) が、フカシFlutter野郎であると証明できた。
さぁ、キミも手元のFlutter環境で、今すぐ確認してみよう!
プライドだけ高いお馬鹿センセイの弟子にならないよう、くれぐれもチューイせよ!
判らないが、リスト表示範囲にピッタリ収まる数より少し余分に呼ばれていた。
どうやら、ListViewの実際の表示サイズではなく、AppBar等を含めたディス
プレイの表示ピクセル数に収まるアイテム数のWidgetを作成しているっぽい。
また、スクロール操作した際も、上/下方向とも移動した行数の分だけ呼ばれ、
スクロール前後で範囲から外れない分はおそらく保持されたままで呼ばれなかった。
「ITセンス無い」なんて言っちゃう時点で、いつもの意識高い系だと思ったが、
これで(ワッチョイ d701-kh8G) が、フカシFlutter野郎であると証明できた。
さぁ、キミも手元のFlutter環境で、今すぐ確認してみよう!
プライドだけ高いお馬鹿センセイの弟子にならないよう、くれぐれもチューイせよ!
97デフォルトの名無しさん (ワッチョイ 9701-6qHG)
2021/02/09(火) 18:26:56.12ID:qUmf+U4D0 仮想リスト・テクノロジー™では?
98デフォルトの名無しさん (ワッチョイ 9f05-Oo46)
2021/02/09(火) 19:08:59.58ID:qBw0aS8i0 そりゃすぐにスクロール初めてもフレーム落ちしないように余剰に前後キャッシュするだろうよ
AndroidのListViewもキャッシュするよ
AndroidのListViewもキャッシュするよ
99デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/09(火) 19:26:05.29ID:4s6aj3EG0 >>55
そういや俺も初心者の頃、スキン切り替え実装するために同じようにwidget配列作って失敗したなと思い出して見直したら、あなたと同じようにbuild内で普通にswitch分岐してたわ。
今作るならインスタンス配列じゃなくてtype配列を作ってその型を生成するように実装するかな?もちろん配列のそれぞれのclassは同じclassから継承しておいて。
dartもtypeからインスタンス生成できるとは思うんだけどやったことはないので具体的なやり方は知らん。
そういや俺も初心者の頃、スキン切り替え実装するために同じようにwidget配列作って失敗したなと思い出して見直したら、あなたと同じようにbuild内で普通にswitch分岐してたわ。
今作るならインスタンス配列じゃなくてtype配列を作ってその型を生成するように実装するかな?もちろん配列のそれぞれのclassは同じclassから継承しておいて。
dartもtypeからインスタンス生成できるとは思うんだけどやったことはないので具体的なやり方は知らん。
100デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/09(火) 19:35:55.01ID:4s6aj3EG0 >>99
あ、widgetを返す関数はStatefulWidgetとかに追い出すこと前提な。
あ、widgetを返す関数はStatefulWidgetとかに追い出すこと前提な。
101デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 21:47:45.51ID:ANc0E1ay0 >>96
モノホンのバカだったのか・・
モノホンのバカだったのか・・
102デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 21:53:55.58ID:ANc0E1ay0 > ワッチョイ 9701-95wZ のキチガイへ
サムネイルとか入れてみ、スクロール2000件めくらいでクラッシュするから
サムネイルとか入れてみ、スクロール2000件めくらいでクラッシュするから
103デフォルトの名無しさん (ワッチョイ d790-XJ0Q)
2021/02/09(火) 22:30:23.42ID:iPD7ZJPG0 https://api.flutter.dev/flutter/widgets/ListView-class.html
のところに書いてあるでしょ
Child elements' lifecycle
Creation
While laying out the list, visible children's elements, states and render objects will be created lazily based on existing widgets (such as when using the default constructor) or lazily provided ones (such as when using the ListView.builder constructor).
リストをレイアウトするとき、見える子のElement,State,RenderObjectsがLazyに作成される
のところに書いてあるでしょ
Child elements' lifecycle
Creation
While laying out the list, visible children's elements, states and render objects will be created lazily based on existing widgets (such as when using the default constructor) or lazily provided ones (such as when using the ListView.builder constructor).
リストをレイアウトするとき、見える子のElement,State,RenderObjectsがLazyに作成される
104デフォルトの名無しさん (ワッチョイ d790-XJ0Q)
2021/02/09(火) 22:30:53.65ID:iPD7ZJPG0 Destruction
When a child is scrolled out of view, the associated element subtree, states and render objects are destroyed. A new child at the same position in the list will be lazily recreated along with new elements,
states and render objects when it is scrolled back.
子がビューからスクロールアウトしたら、関連するElement,State,RenderObjectsは全部破棄される
When a child is scrolled out of view, the associated element subtree, states and render objects are destroyed. A new child at the same position in the list will be lazily recreated along with new elements,
states and render objects when it is scrolled back.
子がビューからスクロールアウトしたら、関連するElement,State,RenderObjectsは全部破棄される
105デフォルトの名無しさん (ワッチョイ d790-XJ0Q)
2021/02/09(火) 22:35:48.60ID:iPD7ZJPG0 で、その後に
Destruction mitigation
で続きがあって、ListView.BuilderのaddAutomaticKeepAlivesがtrueだと保持されるの??
ここら辺はまだよく知らねw
Destruction mitigation
で続きがあって、ListView.BuilderのaddAutomaticKeepAlivesがtrueだと保持されるの??
ここら辺はまだよく知らねw
106デフォルトの名無しさん (ワッチョイ d790-XJ0Q)
2021/02/09(火) 23:28:39.03ID:iPD7ZJPG0 だから、結局、基本、見えてる部分+前後の多少のマージンの部分だけが保持されてるでOKじゃね??
見えてない部分は保持されてない
巨大なリストでも問題なし
でこの話は終了
異論は認めない
見えてない部分は保持されてない
巨大なリストでも問題なし
でこの話は終了
異論は認めない
107デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 23:39:50.66ID:ANc0E1ay0 アホなの?
だからサムネイルとか非同期取得コンテンツを入れてみ。
だからサムネイルとか非同期取得コンテンツを入れてみ。
108デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/09(火) 23:40:23.81ID:KQnFnSaF0109デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 23:42:06.68ID:ANc0E1ay0 >>108
自演してないで消えろよハゲwww
自演してないで消えろよハゲwww
110デフォルトの名無しさん (ワッチョイ 9701-95wZ)
2021/02/09(火) 23:44:25.44ID:KQnFnSaF0 >>109
顔真っ赤にして、一日中張り付いてるの? 暇やね? 無職か?
顔真っ赤にして、一日中張り付いてるの? 暇やね? 無職か?
111デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/09(火) 23:48:47.23ID:ANc0E1ay0 >>110
え?お前無職なのwww
え?お前無職なのwww
112デフォルトの名無しさん (ワッチョイ b75f-Hbjn)
2021/02/10(水) 00:12:19.53ID:y0GPcK+u0 君たち面白いねwwww
113デフォルトの名無しさん (ワッチョイ 1763-kbB0)
2021/02/10(水) 08:13:01.49ID:bUgfldyu0 だからいっただろう
強制コテハンのワッチョイなんてつけるから荒れる
管理者いないんだから荒れるに決まってる
強制コテハンのワッチョイなんてつけるから荒れる
管理者いないんだから荒れるに決まってる
114デフォルトの名無しさん (ワッチョイ 3714-smwP)
2021/02/10(水) 22:04:43.15ID:EZBazwT90115デフォルトの名無しさん (ワッチョイ b75f-Hbjn)
2021/02/10(水) 22:33:17.28ID:CSG59Cdu0 Dart 3.0で実装されるnull安全に向けて
変数の初期値を入れる作業をしますね
変数の初期値を入れる作業をしますね
116デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/11(木) 09:55:24.00ID:fpayl2mg0 dartってtypeからインスタンス生成できないのな。
動的型付け言語だからか?
動的型付け言語だからか?
117デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/11(木) 10:28:07.74ID:QNzWdO780118デフォルトの名無しさん (ワッチョイ 3761-XJ0Q)
2021/02/11(木) 10:42:29.79ID:4v/gNN1w0119デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/11(木) 10:49:59.34ID:QNzWdO780 JSONの内側にある配列はList作ってやらなきゃならないのが地味にめんどくさい、Swiftよりは楽だけど。
NULL安全で同じくらいめんどくさくなるのか・・
NULL安全で同じくらいめんどくさくなるのか・・
120デフォルトの名無しさん (ワッチョイ d701-8aPo)
2021/02/11(木) 10:54:11.92ID:fpayl2mg0121デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/11(木) 11:37:13.59ID:QNzWdO780 低予算で済ませたいならifiのポタアンhip-dacとかおすすめ。HD660SでもHD800Sでもバランス接続問題ない。
音質もそこそこ。
音質もそこそこ。
122デフォルトの名無しさん (ワッチョイ d701-kh8G)
2021/02/11(木) 11:37:28.26ID:QNzWdO780 間違えた
123デフォルトの名無しさん (ワッチョイ d790-Zn1k)
2021/02/11(木) 19:11:39.05ID:M8I5FK680124デフォルトの名無しさん (ワッチョイ 335f-IqbK)
2021/02/14(日) 19:37:19.38ID:eIu+AeRF0 providerに比べてriverpod使いにくいね
データを複数持てないんだもん
1データ1グローバル変数みたいなの気持ち悪い
データを複数持てないんだもん
1データ1グローバル変数みたいなの気持ち悪い
125デフォルトの名無しさん (テテンテンテン MMde-ju/P)
2021/02/14(日) 19:37:54.22ID:yNj7QpIpM 両方💩
126デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/14(日) 19:43:22.27ID:5FBJEFx+0 providerは使いやすい
127デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/14(日) 19:45:55.66ID:5FBJEFx+0 もう代替が利くなら新しいテクノロジー要らね
覚えるのマンドクセー
覚えるのマンドクセー
128デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/14(日) 19:47:28.47ID:5FBJEFx+0 演算子あるからNULL不安でいい
129デフォルトの名無しさん (スフッ Sd32-pNX2)
2021/02/14(日) 20:01:45.63ID:sMx+r2kQd つかバカでもわかるドキュメントとバカでも動かせるサンプルコードをお願いします。
flutterチームでも他の偉い人でもいいんでお願いします。
あとパッケージのバージョンがどうたらとかでエラー出てよくわからないんで、そういうのもやめて頂きたいんです。
providerに限らず。
flutterチームでも他の偉い人でもいいんでお願いします。
あとパッケージのバージョンがどうたらとかでエラー出てよくわからないんで、そういうのもやめて頂きたいんです。
providerに限らず。
130デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/14(日) 20:20:21.63ID:5FBJEFx+0 >>129
YouTubeに五万とあるがな
YouTubeに五万とあるがな
131デフォルトの名無しさん (ワッチョイ d6ba-q1Bg)
2021/02/15(月) 21:53:49.53ID:61gN9eaK0132デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/15(月) 23:11:20.91ID:flUyaby60 自分を信じろよ
133デフォルトの名無しさん (ワッチョイ 9242-duN9)
2021/02/15(月) 23:23:32.71ID:GekQdAOm0 お前を信じる俺を信じろ
134デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/16(火) 06:45:18.70ID:Ifq3nGPn0 ま、最後はアセンブラ分からなきゃ話にならない。
どんなに着飾っても所詮ホモサピエンス。
苦労した学習に無駄はない、そのシナプス形成は次に活きる。
providerはDIの仕組みのひとつ、某サイトだとUIに特化してるとあるがそれは誤り。
どんなに着飾っても所詮ホモサピエンス。
苦労した学習に無駄はない、そのシナプス形成は次に活きる。
providerはDIの仕組みのひとつ、某サイトだとUIに特化してるとあるがそれは誤り。
135デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/16(火) 06:48:48.18ID:Ifq3nGPn0 provider←DI
notifyListeners←UIと言うよりステートマシン寄り
notifyListeners←UIと言うよりステートマシン寄り
136デフォルトの名無しさん (テテンテンテン MMde-ju/P)
2021/02/16(火) 09:49:26.09ID:+4BwVqDgM すごい老害感
137デフォルトの名無しさん (ワッチョイ 335f-ntFe)
2021/02/17(水) 09:41:15.61ID:KcyUbCxs0 凄く初歩的な質問で申し訳ないけれど、フラッターダウンロードしてパスの設定やったけど、コマンドプロンプトから実行するとエラーがでる。
138デフォルトの名無しさん (ワッチョイ 162c-CY8m)
2021/02/17(水) 11:26:20.68ID:9PoXbZeZ0 質問してないじゃん
エラーが出る場合はそのエラー文でググればいい
それでも分からなければここにエラー全文貼って、OS等の環境書いたり、どこからどうやってダウンロードしたか、パスの設定はどうやってどうなってるか、コマンドプロンプトにどんなコマンド打ってどうダメなのか、何が聞きたいのか等書かないと何も分からん
まあ俺はそれが書かれても答えられないけど
エラーが出る場合はそのエラー文でググればいい
それでも分からなければここにエラー全文貼って、OS等の環境書いたり、どこからどうやってダウンロードしたか、パスの設定はどうやってどうなってるか、コマンドプロンプトにどんなコマンド打ってどうダメなのか、何が聞きたいのか等書かないと何も分からん
まあ俺はそれが書かれても答えられないけど
139デフォルトの名無しさん (ワッチョイ a701-FwnR)
2021/02/17(水) 12:07:43.05ID:gDTi73q00 >>137
初歩的という以前に、質問の仕方覚えた方がいいな。
とりあえず、OS環境がWindowsだと仮定して、「flutter」フォルダの直下に「flutter_console.bat」
ってバッチファイルがあるから、それをダブルクリックすれば、パスの設定してなくても
Flutterが動くコンソールが開く。
その状態で「flutter doctor -v」ってやれば、環境をチェックしてくれる。
「×」印が付いてなければOK。
現行の「stable」版は、Windowsアプリ開発は無効化されているので、Windows
環境で開発できるのは、Web(ブラウザ)版か、Android版のアプリになる。
(iOS開発用のXCodeはMacOSのみ対応のため)
Web版の実行には、Chromeか、ChromiumベースのMicrosoft Edgeが必要。
Android版のアプリを開発するには、別途Android Studioのインストールが必要。
Java開発環境(JDK)は、Android Studioの中にOpenJDK8が入ってるので、入って
なければ、インストール先を聞いてくる。
初歩的という以前に、質問の仕方覚えた方がいいな。
とりあえず、OS環境がWindowsだと仮定して、「flutter」フォルダの直下に「flutter_console.bat」
ってバッチファイルがあるから、それをダブルクリックすれば、パスの設定してなくても
Flutterが動くコンソールが開く。
その状態で「flutter doctor -v」ってやれば、環境をチェックしてくれる。
「×」印が付いてなければOK。
現行の「stable」版は、Windowsアプリ開発は無効化されているので、Windows
環境で開発できるのは、Web(ブラウザ)版か、Android版のアプリになる。
(iOS開発用のXCodeはMacOSのみ対応のため)
Web版の実行には、Chromeか、ChromiumベースのMicrosoft Edgeが必要。
Android版のアプリを開発するには、別途Android Studioのインストールが必要。
Java開発環境(JDK)は、Android Studioの中にOpenJDK8が入ってるので、入って
なければ、インストール先を聞いてくる。
140デフォルトの名無しさん (ワッチョイ a701-KDGB)
2021/02/17(水) 12:58:01.49ID:R1iRbaRs0 >>137
OSは?
OSは?
141デフォルトの名無しさん (ワッチョイ 335f-fXZT)
2021/02/17(水) 20:07:05.86ID:d4WcQVN70 flutterを勉強し始めて、httpのリクエストを出して返ってきた
htmlの中身を見て処理するということをやりたくて調べて見つけたサンプル。
そのものズバリなんだけど、なかなか動作確認して処理を追ったりしにくいなぁ。
【Flutter】自給自足!Pornhubの検索アプリを作ってみた!【R18】
https://elekibear.com/20201218_01
htmlの中身を見て処理するということをやりたくて調べて見つけたサンプル。
そのものズバリなんだけど、なかなか動作確認して処理を追ったりしにくいなぁ。
【Flutter】自給自足!Pornhubの検索アプリを作ってみた!【R18】
https://elekibear.com/20201218_01
142デフォルトの名無しさん (ワッチョイ 335f-IqbK)
2021/02/17(水) 22:26:36.26ID:26ePY2Fq0 Navigator 2.0やっぱりハードル高いよな
それを使いやすくしたパッケージがいくつか登場して利用者もいるから敷居高いってことだよな
それを使いやすくしたパッケージがいくつか登場して利用者もいるから敷居高いってことだよな
143デフォルトの名無しさん (テテンテンテン MMde-ju/P)
2021/02/17(水) 22:55:30.57ID:tIUVKAx9M 使いづらいゴミの量産しかしないからな
144デフォルトの名無しさん (ワッチョイ df01-5+RR)
2021/02/17(水) 23:03:16.29ID:wd6zNsAe0 >>142
ん?難しい?おれは定型Routeが分かりやすくなっていいと思ったけど。画面全体を覆うプログレスダイアログとかはpush/popのままだし。
ん?難しい?おれは定型Routeが分かりやすくなっていいと思ったけど。画面全体を覆うプログレスダイアログとかはpush/popのままだし。
145デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/17(水) 23:36:21.49ID:gjncEnw20146デフォルトの名無しさん (ワッチョイ a701-FwnR)
2021/02/18(木) 09:45:54.71ID:TAAV/2v40 >>145
robots.txt に法的な拘束力なんてないよ?
robots.txt に法的な拘束力なんてないよ?
147デフォルトの名無しさん (ワッチョイ 6fbb-9qtm)
2021/02/19(金) 19:18:43.84ID:rtfmhn+o0 >>131
作者一緒でオワコン化するの見えてるし、初心者なら最初からriverpodにしといた方が無難だった気がする…
作者一緒でオワコン化するの見えてるし、初心者なら最初からriverpodにしといた方が無難だった気がする…
■ このスレッドは過去ログ倉庫に格納されています
