123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:flutterappfuyou/code/base/YSNetWorking.dart';
- import '../../YSQuestionDetail.dart';
- class YSQuestionListView extends StatefulWidget {
- final Map questionItem;
- const YSQuestionListView({Key key, this.questionItem}) : super(key: key);
- @override
- _YSQuestionListViewState createState() => _YSQuestionListViewState();
- }
- class _YSQuestionListViewState extends State<YSQuestionListView> {
- @override
- Widget build(BuildContext context) {
- return GestureDetector(
- onTap: (){
- Navigator.of(context).push(
- CupertinoPageRoute(
- builder: (context){
- return YSQuestionDetail(questionId: widget.questionItem['id'],isPolicy: false,);
- }
- )
- );
- },
- child: Container(
- margin: EdgeInsets.only(left: 5,right: 5),
- padding: EdgeInsets.all(15),
- height: 160,
- decoration: BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.all(Radius.circular(6))
- ),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Row(
- children: [
- Container(
- height: 35,
- width: 35,
- decoration: BoxDecoration(
- color: Color(0xFFF5F3F0),
- borderRadius: BorderRadius.all(Radius.circular(17.5)),
- image: DecorationImage(image: NetworkImage('${widget.questionItem['doctor_avatar']}'),fit: BoxFit.fill)
- ),
- ),
- Container(
- margin: EdgeInsets.only(left: 10),
- width: MediaQuery.of(context).size.width-85,
- child: Text('${widget.questionItem['doctor_name']}医生 解答了该问题',style: TextStyle(fontSize: 14,color: Color(0xFF666666)),overflow: TextOverflow.ellipsis,),
- )
- ],
- ),
- Container(
- width: MediaQuery.of(context).size.width-40,
- child: Text('问:${widget.questionItem['question_title']}',style: TextStyle(fontSize: 14,color: Color(0xFF292929)),overflow: TextOverflow.ellipsis,),
- ),
- Container(
- width: MediaQuery.of(context).size.width-40,
- child: widget.questionItem['answer_type']=='voice'?Row(
- children: [
- Text('医生解答:',style: TextStyle(fontSize: 14,color: Color(0xFF428B8D)),overflow: TextOverflow.ellipsis,),
- Container(
- height: 26,
- width: 59,
- decoration: BoxDecoration(
- color: Color(0xFFF5F3F0),
- borderRadius: BorderRadius.all(Radius.circular(4))
- ),
- alignment: Alignment.center,
- child: Stack(
- children: [
- Row(
- children: [
- Container(
- child: Image.asset('lib/images/voice2.png'),
- height: 15,
- width: 15,
- margin: EdgeInsets.only(left: 10,right: 5),
- ),
- Text('4',style: TextStyle(fontSize: 14,color: Color(0xFF428B8D)),overflow: TextOverflow.ellipsis,),
- ],
- )
- ],
- ),
- )
- ],
- ):Text('医生解答:${(widget.questionItem['answer_body'])??''}',style: TextStyle(fontSize: 14,color: Color(0xFF428B8D)),overflow: TextOverflow.ellipsis,),
- ),
- Container(
- width: MediaQuery.of(context).size.width,
- height: 1.5,
- child: Image.asset('lib/images/line.png'),
- ),
- Row(
- children: [
- Container(
- width: MediaQuery.of(context).size.width-85,
- child: Text('${widget.questionItem['question_time']}',style: TextStyle(fontSize: 12,color: Color(0xFF808080)),overflow: TextOverflow.ellipsis,),
- ),
- GestureDetector(
- child: Image(height: 15,width: 15,image: AssetImage(widget.questionItem['is_favorite']==false?'lib/images/uncollection.png':'lib/images/collection.png'),),
- onTap: () async{
- _postCollectionData();
- },
- )
- ],
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- )
- ],
- ),
- ),
- );
- }
- _postCollectionData() async{
- Map dict = await ysRequestHttpNoLoading(context, requestType.post, 'question/favorite', {'question_id':widget.questionItem['id']});
- if(dict!=null){
- widget.questionItem['is_favorite'] = dict['data']['is_favorite'];
- setState(() {});
- }
- }
- }
|