🔥
【Flutter】LicenseRegistryを使ったライセンスページ
ライセンスページ作成
下記記事参考にじぶんなりのライセンスページを作成しました。
忘れない様に記事にして残しておきます。
class LicensePage extends HookConsumerWidget {
/// Constructor
const LicensePage({super.key});
Widget build(BuildContext context, WidgetRef ref) {
///
final list = useState<List<LicenseEntry>>([]);
Future<void> getLicense() async {
final licenses = await LicenseRegistry.licenses.toList();
licenseList.value = licenses;
}
useEffect(
() {
WidgetsBinding.instance.addPostFrameCallback((_) {
getLicense();
});
return null;
},
[],
);
return Scaffold(
appBar: const AppBar(
title: 'ライセンス',
),
body: list.value.isEmpty
? const Center(child: CircularProgressIndicator())
: ListView.builder(
itemCount: list.value.length,
itemBuilder: (context, index) {
final entry = list.value[index];
final title = entry.packages.join(', ');
final paragraphs = entry.paragraphs;
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 19),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// パッケージタイトル
Padding(
padding: const EdgeInsets.symmetric(vertical: 12),
child: Text(
title,
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
),
// 段落
...paragraphs.map(
(para) => Padding(
padding: const EdgeInsets.only(bottom: 8),
child: Text(
para.text,
style: const TextStyle(fontSize: 14),
),
),
),
],
),
);
},
),
);
}
}
Discussion