Flutter開発は初めてで、これは素朴な質問かもしれませんが、フラッター開発サイトの初心者向けチュートリアルに従っていましたが、リストビューが表示されません。クラス/関数名をいくつか変更し、コードを別のファイルに入れましたが、ここで何が間違っているのかわかりません。これは、ランダムな単語の無限リストのリストであるはずです。
完全なコードは次のとおりです。
//File name: main.dart
import 'package:english_words/english_words.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app_as/StatefulWidgetStates.dart';
class StatefulRandomWordsWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return RandomWordsState();
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
var wordWidget = StatefulRandomWordsWidget();
return MaterialApp(
title: 'Useless Title',
home: Scaffold(
appBar: AppBar(title: Text('Welcome to Flutter')),
body: wordWidget));
}
}
void main() {
runApp(MyApp());
}
と
//File name: StatefulWidgetStates.dart
import 'package:english_words/english_words.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app_as/main.dart';
class RandomWordsState extends State<StatefulRandomWordsWidget> {
final dataList = <WordPair>[];
@override
Widget build(BuildContext context) {
return getListView();
}
Widget getListView() {
ListView listViewWidget = ListView.builder(
itemCount: dataList.length,
padding: EdgeInsets.all(8.0),
itemBuilder: (context, pos) {
if (pos.isOdd) {
return Divider();
}
else {
final index = pos ~/ 2;
if (index >= dataList.length) {
List<WordPair> pairs=generateWordPairs().take(10);
dataList.addAll(pairs);
}
WordPair childData = dataList[index];
return ListTile(title: Text(childData.asCamelCase, style: TextStyle(fontSize: 12.0)));
}
});
return listViewWidget;
}
}
final index = pos ~/ 2;
また、このロジックが何であるかもわかりません。公式ドキュメントには次のように書かれています。
式 i ~/ 2 は、i を 2 で割り、整数の結果を返します。例: 1, 2, 3, 4, 5 は 0, 1, 1, 2, 2 になります。
しかし、それは間違った使い方をしていると推測しています。