parent
7bd49900cb
commit
58df346b72
@ -0,0 +1,87 @@
|
||||
import 'package:aku_community/base/base_style.dart';
|
||||
import 'package:aku_community/models/service_browse/service_browse_list_mode.dart';
|
||||
import 'package:aku_community/utils/link_text_parase.dart';
|
||||
import 'package:aku_community/widget/bee_scaffold.dart';
|
||||
import 'package:flustars/flustars.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
|
||||
class ServiceBrowseDetailPage extends StatefulWidget {
|
||||
final ServiceBrowseListModel model;
|
||||
ServiceBrowseDetailPage({Key? key, required this.model}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ServiceBrowseDetailPageState createState() =>
|
||||
_ServiceBrowseDetailPageState();
|
||||
}
|
||||
|
||||
class _ServiceBrowseDetailPageState extends State<ServiceBrowseDetailPage> {
|
||||
ServiceBrowseListModel get _detailModel => widget.model;
|
||||
late List<String> _parasedText;
|
||||
late TapGestureRecognizer _tapLinkUrlLancher; //设置单击手势识别器
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_tapLinkUrlLancher = TapGestureRecognizer();
|
||||
_parasedText = LinkTextParase.stringParase(widget.model.content);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BeeScaffold(
|
||||
title: '服务浏览',
|
||||
bodyColor: Colors.white,
|
||||
body: ListView(
|
||||
padding: EdgeInsets.symmetric(vertical: 24.w, horizontal: 32.w),
|
||||
children: [
|
||||
_detailModel.name.text
|
||||
.size(32.sp)
|
||||
.color(ktextPrimary)
|
||||
.bold
|
||||
.align(TextAlign.center)
|
||||
.make(),
|
||||
24.w.heightBox,
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
child: RichText(
|
||||
text: TextSpan(
|
||||
children: List.generate(_parasedText.length, (index) {
|
||||
if (index.isEven) {
|
||||
return TextSpan(
|
||||
text: _parasedText[index],
|
||||
style: TextStyle(fontSize: 28.sp, color: ktextPrimary),
|
||||
);
|
||||
} else {
|
||||
return TextSpan(
|
||||
text: _parasedText[index],
|
||||
style: TextStyle(
|
||||
fontSize: 28.sp,
|
||||
color: Colors.lightBlue,
|
||||
),
|
||||
recognizer: _tapLinkUrlLancher
|
||||
..onTap = () {
|
||||
launch(_parasedText[index]);
|
||||
});
|
||||
}
|
||||
})),
|
||||
),
|
||||
),
|
||||
40.w.heightBox,
|
||||
Row(
|
||||
children: [
|
||||
Spacer(),
|
||||
'发布于 ${DateUtil.formatDateStr(_detailModel.createDate, format: 'MM-dd HH:mm')}'
|
||||
.text
|
||||
.size(24.sp)
|
||||
.color(ktextSubColor)
|
||||
.make(),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue