|
|
@@ -61,7 +61,7 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
|
|
|
// 回复语气列表卡片
|
|
|
_buildReplyToneListCard(),
|
|
|
// 距离底部有一定间距
|
|
|
- SizedBox(height: 90.h),
|
|
|
+ _buildBottomSpace(),
|
|
|
],
|
|
|
);
|
|
|
}
|
|
|
@@ -78,6 +78,19 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ /// 底部间距
|
|
|
+ Widget _buildBottomSpace() {
|
|
|
+ return Obx(() {
|
|
|
+ // 生成中,或已生成,底部高度降低
|
|
|
+ if (controller.isResultGenerating.value ||
|
|
|
+ controller.hasScanResult.value) {
|
|
|
+ return SizedBox(height: 20.h);
|
|
|
+ }
|
|
|
+ // 否则留出距离给底部显示
|
|
|
+ return SizedBox(height: 90.h);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
/// 上传截图的卡片
|
|
|
/// [isSample] 是否是样例图片
|
|
|
Widget _buildUploadScreenshotCard(bool isSample) {
|
|
|
@@ -271,11 +284,7 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
|
|
|
/// 回复语气列表卡片
|
|
|
Widget _buildReplyToneListCard() {
|
|
|
return Obx(() {
|
|
|
- // 为生成
|
|
|
- if (!controller.isResultGenerating.value) {
|
|
|
- return SizedBox();
|
|
|
- }
|
|
|
- return Container(
|
|
|
+ Widget resultWidget = Container(
|
|
|
margin: EdgeInsets.only(left: 12.w, right: 12.w),
|
|
|
decoration: BoxDecoration(
|
|
|
// 渐变背景
|
|
|
@@ -365,6 +374,18 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
|
|
|
],
|
|
|
),
|
|
|
);
|
|
|
+ // 生成中,展示组件
|
|
|
+ if (controller.isResultGenerating.value) {
|
|
|
+ return resultWidget;
|
|
|
+ } else {
|
|
|
+ // 未生成,不显示
|
|
|
+ if (!controller.hasScanResult.value) {
|
|
|
+ return SizedBox.shrink();
|
|
|
+ } else {
|
|
|
+ // 已生成,显示
|
|
|
+ return resultWidget;
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -565,15 +586,19 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
|
|
|
|
|
|
/// 底部操作按钮
|
|
|
Widget _buildBottomActionBtn(BuildContext context) {
|
|
|
- if (controller.isUploadPage.value) {
|
|
|
- // 上传页,显示上传截图按钮
|
|
|
+ // 例子,则显示上传截图按钮
|
|
|
+ if (controller.uploadInfo.value == null) {
|
|
|
return Container(
|
|
|
width: double.maxFinite,
|
|
|
margin: EdgeInsets.only(top: 8.h, bottom: 20.h),
|
|
|
child: _buildUploadScreenshotBtn(context),
|
|
|
);
|
|
|
+ }
|
|
|
+ // 生成中,或已有结果,隐藏按钮
|
|
|
+ if (controller.isResultGenerating.value || controller.hasScanResult.value) {
|
|
|
+ return SizedBox.shrink();
|
|
|
} else {
|
|
|
- // 结果页,显示2个按钮,模式切换按钮和获取回复按钮
|
|
|
+ // 上传页或结果页,显示2个按钮,模式切换按钮和获取回复按钮
|
|
|
return Container(
|
|
|
width: double.maxFinite,
|
|
|
margin: EdgeInsets.only(
|