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

章节选中状态

上级 3cef8b26
......@@ -128,7 +128,8 @@ class ChapterModel {
this.isReading,
this.sort,
this.seen,
this.children
this.children,
this.selected = false
});
ChapterModel.fromJson(dynamic json) {
......@@ -145,6 +146,7 @@ class ChapterModel {
children?.add(ChapterModel.fromJson(v));
});
}
selected = false;
}
num? id;
String? name;
......@@ -153,6 +155,7 @@ class ChapterModel {
num? isReading;
num? sort;
num? seen;
late bool selected;
List<ChapterModel>? children;
ChapterModel copyWith({ num? id,
String? name,
......
library book_category;
import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart';
import '../../models/index.dart';
......
part of book_category;
class BuildItem extends StatelessWidget {
class BuildItem extends StatefulWidget {
final ChapterModel model;
const BuildItem({
Key? key,
required this.model
}) : super(key: key);
@override
State<BuildItem> createState() => _BuildItemState();
}
class _BuildItemState extends State<BuildItem> {
@override
Widget build(BuildContext context) {
return Column(
children: [
/// 章节名称容器
Container(
GestureDetector(
onTap: (){
setState(() {
widget.model.selected = !widget.model.selected;
});
},
child: Container(
margin: const EdgeInsets.symmetric(horizontal: 15),
height: 30,
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(model.name??'',style: const TextStyle(fontSize: 14,color: Colours.c3,fontWeight: Fonts.medium,height: 1.6),),
Container(
width: 14,
height: 4,
color: Colors.cyan,
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(widget.model.name??'',style: TextStyle(fontSize: 14,color: widget.model.seen ==0? Colours.c3:Colours.c9,fontWeight: Fonts.medium,height: 1.4),),
Gaps.hGaps5,
widget.model.isReading == 1? Container(
height: 17,
width: 17,
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.5),
border: Border.all(width:1,color: AppTheme.primary)
),
child: const Text('试',style: TextStyle(fontSize: 12,color: AppTheme.primary),),
):const SizedBox(),
],
),
Transform.rotate(
angle: widget.model.selected?0:-90 * (3.141592653589793 / 180),
child: Image.asset('assets/images/down.png')
)
],
)
),
),
/// 节的名称容器
Visibility(
visible: true,
visible: widget.model.selected,
child: ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (BuildContext context, int index){
return _buildSection(model.children![index]);
return _buildSection(widget.model.children![index]);
},
itemCount: model.children!.length,
itemCount: widget.model.children!.length,
)
)
],
......@@ -45,7 +75,7 @@ class BuildItem extends StatelessWidget {
Widget _buildSection(ChapterModel model){
return Container(
margin: const EdgeInsets.only(left: 60),
child: Text(model.name??'',style: const TextStyle(fontSize: 12,color: Colours.c3,height: 1.6),),
child: Text(model.name??'',style:TextStyle(fontSize: 12,color: model.seen ==0? Colours.c3:Colours.c9,height: 1.6),),
);
}
}
......@@ -108,7 +108,7 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
// color: Colours.cE0.withOpacity(0.5),
),
// padding: EdgeInsets.symmetric(vertical: 8),
child: const Text('学习报告',style: TextStyle(fontSize: 13,color: Colours.c9,height: 1.5),),
child: controller.bookDetails.isHave ==1? Text('学习报告',style: TextStyle(fontSize: 13,color: Colours.c9,height: 1.5),):Text('加入书架',style: TextStyle(fontSize: 13,color: AppTheme.primary,height: 1.5),),
),
),
),
......@@ -116,9 +116,14 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
Expanded(
child: GestureDetector(
onTap: (){
context.pushNamed(Routes.creditPoints).then((value){
print('---------------------$value');
});
// context.pushNamed(Routes.creditPoints).then((value){
// print('---------------------$value');
// });
/// 没有购买并且没有试读直接跳转 购买页
bool noTryRead = true;
if(controller.bookDetails.isHave == 0 && noTryRead){
context.pushNamed(Routes.bookPay);
}
},
child: Container(
decoration: BoxDecoration(
......@@ -141,4 +146,6 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论