This commit is contained in:
zhutao
2025-08-22 14:15:02 +08:00
parent 5853bdf004
commit 99a1ce601e
120 changed files with 5297 additions and 101 deletions

View File

@@ -0,0 +1,63 @@
import 'package:flutter/material.dart';
import 'package:markdown_widget/markdown_widget.dart';
import 'package:skeletonizer/skeletonizer.dart';
import '../../../api/dto/article_detail_dto.dart';
import '../../../api/endpoints/skin_api.dart';
class EducationDetailPage extends StatefulWidget {
final String id;
const EducationDetailPage({super.key, required this.id});
@override
State<EducationDetailPage> createState() => _EducationDetailPageState();
}
class _EducationDetailPageState extends State<EducationDetailPage> {
ArticleDetailDto? _detailDto;
bool _loading = true;
@override
void initState() {
super.initState();
_init();
}
void _init() async {
var res = await articleDetailApi(widget.id);
setState(() {
_detailDto = res;
_loading = false;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(_detailDto?.title ?? ""),
),
body: Skeletonizer(
enabled: _loading,
child: _loading
? ListView.builder(
padding: EdgeInsets.all(15),
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(vertical: 6),
height: 14,
width: double.infinity,
color: Colors.grey[300],
);
},
itemCount: 10,
)
: MarkdownWidget(
padding: EdgeInsets.all(15),
data: _detailDto?.content ?? "",
),
),
);
}
}