Some checks failed
Build Android APK / 编译 libcore.aar (push) Has been cancelled
Build Android APK / 编译 Android APK (release) (push) Has been cancelled
Build Android APK / 创建 GitHub Release (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Android) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Windows) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (macOS) (push) Has been cancelled
Build Multi-Platform / 编译 libcore (Linux) (push) Has been cancelled
Build Multi-Platform / 构建 Android APK (push) Has been cancelled
Build Multi-Platform / 构建 Windows (push) Has been cancelled
Build Multi-Platform / 构建 macOS (push) Has been cancelled
Build Multi-Platform / 构建 Linux (push) Has been cancelled
Build Multi-Platform / 创建 Release (push) Has been cancelled
Build Windows / build (push) Has been cancelled
91 lines
3.9 KiB
Dart
Executable File
91 lines
3.9 KiB
Dart
Executable File
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:easy_refresh/easy_refresh.dart';
|
|
import 'package:flutter_html/flutter_html.dart';
|
|
import 'package:flutter_markdown/flutter_markdown.dart';
|
|
import '../../../model/response/kr_message_list.dart';
|
|
import '../controllers/kr_message_controller.dart';
|
|
import 'package:kaer_with_panels/app/widgets/kr_app_text_style.dart';
|
|
import 'package:kaer_with_panels/app/localization/app_translations.dart';
|
|
import 'package:kaer_with_panels/app/widgets/hi_base_scaffold.dart';
|
|
import 'package:kaer_with_panels/app/widgets/hi_help_entrance.dart';
|
|
import 'package:kaer_with_panels/app/widgets/hi_collapsible_list.dart';
|
|
import 'package:kaer_with_panels/app/widgets/hi_fixed_scrollbar.dart';
|
|
import '../../../widgets/kr_simple_loading.dart';
|
|
class KRMessageView extends GetView<KRMessageController> {
|
|
const KRMessageView({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final ScrollController scrollController = ScrollController();
|
|
|
|
return HIBaseScaffold(
|
|
child: Stack(
|
|
children: [
|
|
// 主要内容区域
|
|
Obx(() {
|
|
return EasyRefresh(
|
|
controller: controller.refreshController,
|
|
onRefresh: controller.kr_onRefresh,
|
|
onLoad: controller.kr_onLoadMore,
|
|
header: ClassicHeader(
|
|
dragText: '下拉刷新',
|
|
armedText: '释放刷新',
|
|
readyText: '正在刷新...',
|
|
processingText: '正在刷新...',
|
|
processedText: '刷新成功',
|
|
failedText: '刷新失败',
|
|
messageText: '最后更新于 %T',
|
|
textStyle: TextStyle(color: Colors.white.withOpacity(0.7)),
|
|
messageStyle: TextStyle(color: Colors.white.withOpacity(0.5), fontSize: 12.sp),
|
|
iconTheme: IconThemeData(color: Colors.white.withOpacity(0.7)),
|
|
),
|
|
// 3. 添加 Footer 以显示上拉加载的UI提示
|
|
footer: ClassicFooter(
|
|
dragText: '上拉加载',
|
|
armedText: '释放加载',
|
|
readyText: '正在加载...',
|
|
processingText: '正在加载...',
|
|
processedText: '加载成功',
|
|
failedText: '加载失败',
|
|
noMoreText: '没有更多数据了',
|
|
messageText: '最后更新于 %T',
|
|
textStyle: TextStyle(color: Colors.white.withOpacity(0.7)),
|
|
messageStyle: TextStyle(color: Colors.white.withOpacity(0.5), fontSize: 12.sp),
|
|
iconTheme: IconThemeData(color: Colors.white.withOpacity(0.7)),
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsets.only(right: 0.w, bottom: 90.w), // 为HIHelpEntrance留出空间
|
|
child: HiFixedScrollbar(
|
|
controller: scrollController,
|
|
isShowScrollbar: controller.kr_messages.length > 0,
|
|
child: ListView.builder(
|
|
controller: scrollController,
|
|
padding: EdgeInsets.symmetric(horizontal: 40.w),
|
|
itemCount: controller.kr_messages.length,
|
|
itemBuilder: (context, index) {
|
|
final message = controller.kr_messages[index];
|
|
final collapsibleItemData = HICollapsibleItem(
|
|
title: message.title,
|
|
content: [message.content],
|
|
);
|
|
return Padding(
|
|
padding: EdgeInsets.only(bottom: 10.w),
|
|
child: HICollapsibleItemWidget(item: collapsibleItemData),
|
|
);
|
|
},
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
},),
|
|
// 底部帮助入口
|
|
const HIHelpEntrance(),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|