提交 a0fe5e17 authored 作者: yueweilu's avatar yueweilu

目录 跳转 阅读页 事件统一由详情页跳转

上级 aad8de22
...@@ -5,11 +5,13 @@ class BookCategoryPage extends StatefulWidget { ...@@ -5,11 +5,13 @@ class BookCategoryPage extends StatefulWidget {
final List <ChapterModel> chapters; final List <ChapterModel> chapters;
final String bookId; final String bookId;
final BookDetailModel bookDetails; final BookDetailModel bookDetails;
final void Function(ChapterModel model) onTap;
const BookCategoryPage({ const BookCategoryPage({
Key? key, Key? key,
required this.chapters, required this.chapters,
required this.bookId, required this.bookId,
required this.bookDetails required this.bookDetails,
required this.onTap
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -24,7 +26,14 @@ class _BookCategoryPageState extends State<BookCategoryPage> { ...@@ -24,7 +26,14 @@ class _BookCategoryPageState extends State<BookCategoryPage> {
Expanded( Expanded(
child: ListView.builder( child: ListView.builder(
itemBuilder:(BuildContext context, int index){ itemBuilder:(BuildContext context, int index){
return BuildItem(model: widget.chapters[index],bookId: widget.bookId,bookDetails: widget.bookDetails,); return BuildItem(
model: widget.chapters[index],
bookId: widget.bookId,
bookDetails: widget.bookDetails,
onTap: (ChapterModel model){
widget.onTap(model);
},
);
}, },
itemCount: widget.chapters.length, itemCount: widget.chapters.length,
), ),
......
...@@ -4,11 +4,13 @@ class BuildItem extends StatefulWidget { ...@@ -4,11 +4,13 @@ class BuildItem extends StatefulWidget {
final ChapterModel model; final ChapterModel model;
final String bookId; final String bookId;
final BookDetailModel bookDetails; final BookDetailModel bookDetails;
final void Function(ChapterModel model) onTap;
const BuildItem({ const BuildItem({
Key? key, Key? key,
required this.model, required this.model,
required this.bookId, required this.bookId,
required this.bookDetails required this.bookDetails,
required this.onTap
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -25,7 +27,8 @@ class _BuildItemState extends State<BuildItem> { ...@@ -25,7 +27,8 @@ class _BuildItemState extends State<BuildItem> {
onTap: (){ onTap: (){
// 如果章下面没有节 点击才会跳转 // 如果章下面没有节 点击才会跳转
if (widget.model.children!.isEmpty){ if (widget.model.children!.isEmpty){
context.pushNamed(Routes.web,queryParameters: {'book_id': widget.bookDetails.bookId.toString(),'chapter_id': widget.model.id.toString(),'chapter_name':widget.model.name.toString()},extra: widget.bookDetails); widget.onTap(widget.model);
// context.pushNamed(Routes.web,queryParameters: {'book_id': widget.bookDetails.bookId.toString(),'chapter_id': widget.model.id.toString(),'chapter_name':widget.model.name.toString()},extra: widget.bookDetails);
} }
// setState(() { // setState(() {
// widget.model.selected = !widget.model.selected; // widget.model.selected = !widget.model.selected;
...@@ -88,7 +91,8 @@ class _BuildItemState extends State<BuildItem> { ...@@ -88,7 +91,8 @@ class _BuildItemState extends State<BuildItem> {
ChapterModel model = widget.model.children![index]; ChapterModel model = widget.model.children![index];
return GestureDetector( return GestureDetector(
onTap: (){ onTap: (){
context.pushNamed(Routes.web,queryParameters: {'book_id': widget.bookDetails.bookId.toString(),'chapter_id':model.id.toString(),'chapter_name':model.name.toString()},extra: widget.bookDetails); widget.onTap(model);
// context.pushNamed(Routes.web,queryParameters: {'book_id': widget.bookDetails.bookId.toString(),'chapter_id':model.id.toString(),'chapter_name':model.name.toString()},extra: widget.bookDetails);
}, },
child: _buildSection(model) child: _buildSection(model)
); );
......
...@@ -88,7 +88,17 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid ...@@ -88,7 +88,17 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
child: TabBarView( child: TabBarView(
controller: controller.tabController, controller: controller.tabController,
children: [ children: [
BookCategoryPage(chapters: controller.chapters,bookId: controller.bookId,bookDetails: controller.bookDetails,), BookCategoryPage(
chapters: controller.chapters,
bookId: controller.bookId,
bookDetails: controller.bookDetails,
onTap: (ChapterModel chapterModel) async{
final result = await context.pushNamed(Routes.web,queryParameters: {'book_id': controller.bookDetails.bookId.toString(),'chapter_id': chapterModel.id.toString(),'chapter_name':chapterModel.name.toString()},extra: controller.bookDetails);
if (result == true){
controller.getChapters();
}
},
),
// Container( // Container(
// padding: EdgeInsets.only(left: 15.w,right: 15.w,top:12.w), // padding: EdgeInsets.only(left: 15.w,right: 15.w,top:12.w),
// color: Colors.white, // color: Colors.white,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论