|
|
@@ -74,6 +74,10 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
controller.onEditCancel();
|
|
|
return false;
|
|
|
}
|
|
|
+ if (controller.isShowMindFullScreen.value) {
|
|
|
+ controller.onExitMindFullScreen();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
return true;
|
|
|
},
|
|
|
child: DefaultTabController(
|
|
|
@@ -81,7 +85,6 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
length: controller.tabBeans.length,
|
|
|
child: Stack(
|
|
|
children: [
|
|
|
- buildTopGradient(),
|
|
|
_buildTalkContentView(),
|
|
|
buildBottomView(),
|
|
|
],
|
|
|
@@ -90,25 +93,46 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Scaffold _buildTalkContentView() {
|
|
|
- return Scaffold(
|
|
|
- backgroundColor: Colors.transparent,
|
|
|
- appBar: AppBar(
|
|
|
- actions: [
|
|
|
- _buildEditBtnView(),
|
|
|
- ],
|
|
|
- leadingWidth: 0.9.sw,
|
|
|
- systemOverlayStyle: SystemUiOverlayStyle.dark,
|
|
|
- backgroundColor: Colors.transparent,
|
|
|
- leading: _buildAppbarLeftView(),
|
|
|
- ),
|
|
|
- body: Builder(builder: (context) {
|
|
|
+ Widget _buildTalkContentView() {
|
|
|
+ return Builder(builder: (context) {
|
|
|
+ final statusBarHeight = MediaQuery.of(context).padding.top;
|
|
|
+ return Obx(() {
|
|
|
return Column(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
- children: [buildTabBar(context), buildTalkContentView()],
|
|
|
+ children: [
|
|
|
+ AnimatedContainer(
|
|
|
+ key: controller.headGlobalKey,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ gradient: LinearGradient(
|
|
|
+ colors: ['#E1E9FF'.toColor(), '#F9FAFE'.toColor()],
|
|
|
+ begin: Alignment.topCenter,
|
|
|
+ end: Alignment.bottomCenter,
|
|
|
+ stops: const [0, 1.0],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ height: controller.isShowMindFullScreen.value
|
|
|
+ ? 0
|
|
|
+ : controller.headViewHeight,
|
|
|
+ duration: controller.mindFullDuration,
|
|
|
+ child: SingleChildScrollView(
|
|
|
+ physics: const NeverScrollableScrollPhysics(),
|
|
|
+ child: Column(children: [
|
|
|
+ SizedBox(height: statusBarHeight),
|
|
|
+ Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
+ children: [
|
|
|
+ _buildToolbarLeftView(),
|
|
|
+ _buildToolbarRightView(),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ buildTabBar(context),
|
|
|
+ ]),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ buildTalkContentView()
|
|
|
+ ],
|
|
|
);
|
|
|
- }),
|
|
|
- );
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
Widget buildTabBar(BuildContext context) {
|
|
|
@@ -152,20 +176,6 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- Container buildTopGradient() {
|
|
|
- return Container(
|
|
|
- width: 1.sw,
|
|
|
- height: 180.h,
|
|
|
- decoration: BoxDecoration(
|
|
|
- gradient: LinearGradient(
|
|
|
- colors: ['#E1E9FF'.toColor(), '#F9FAFE'.toColor()],
|
|
|
- begin: Alignment.topCenter,
|
|
|
- end: Alignment.bottomCenter,
|
|
|
- stops: const [0, 1.0],
|
|
|
- ),
|
|
|
- ));
|
|
|
- }
|
|
|
-
|
|
|
Widget buildTalkContentView() {
|
|
|
return Obx(() {
|
|
|
if (controller.talkBean.value?.status.value == TalkStatus.notAnalysis &&
|
|
|
@@ -284,21 +294,30 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
Widget buildBottomView() {
|
|
|
return Obx(() {
|
|
|
return Visibility(
|
|
|
+ key: controller.bottomGlobalKey,
|
|
|
visible: controller.isEditModel == false,
|
|
|
- child: Align(
|
|
|
- alignment: Alignment.bottomCenter,
|
|
|
- child: Container(
|
|
|
- margin: EdgeInsets.only(bottom: 20.h),
|
|
|
- child: IntrinsicHeight(
|
|
|
- child: Column(
|
|
|
- crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
- children: [
|
|
|
- _buildAIAnalysisView(),
|
|
|
- SizedBox(height: 8.h),
|
|
|
- _buildTalkEditView(),
|
|
|
- SizedBox(height: 10.h),
|
|
|
- buildAudioView()
|
|
|
- ],
|
|
|
+ child: AnimatedPositioned(
|
|
|
+ duration: controller.mindFullDuration,
|
|
|
+ bottom: controller.isShowMindFullScreen.value
|
|
|
+ ? controller.getBottomViewHeight()
|
|
|
+ : 0.h,
|
|
|
+ left: 0,
|
|
|
+ right: 0,
|
|
|
+ child: Align(
|
|
|
+ alignment: Alignment.bottomCenter,
|
|
|
+ child: Container(
|
|
|
+ margin: EdgeInsets.only(bottom: 20.h),
|
|
|
+ child: IntrinsicHeight(
|
|
|
+ child: Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
+ children: [
|
|
|
+ _buildAIAnalysisView(),
|
|
|
+ SizedBox(height: 8.h),
|
|
|
+ _buildTalkEditView(),
|
|
|
+ SizedBox(height: 10.h),
|
|
|
+ buildAudioView()
|
|
|
+ ],
|
|
|
+ ),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
@@ -440,7 +459,7 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- Widget _buildAppbarLeftView() {
|
|
|
+ Widget _buildToolbarLeftView() {
|
|
|
return Obx(() {
|
|
|
if (controller.isEditModel) {
|
|
|
return Align(
|
|
|
@@ -508,7 +527,7 @@ class TalkPage extends BasePage<TalkController> {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- Widget _buildEditBtnView() {
|
|
|
+ Widget _buildToolbarRightView() {
|
|
|
return Obx(() {
|
|
|
return Visibility(
|
|
|
visible: controller.talkBean.value?.status.value ==
|