Browse Source

[New]聊天列表滚动时收起键盘

zhipeng 1 year ago
parent
commit
e65723af72
2 changed files with 16 additions and 9 deletions
  1. 1 2
      assets/string/base/string.xml
  2. 15 7
      lib/module/chat/view.dart

+ 1 - 2
assets/string/base/string.xml

@@ -38,8 +38,7 @@
     <string name="talk_rename_title_hint">请输入谈话记录标题</string>
     <string name="talk_rename_success">修改成功</string>
     <string name="talk_rename_fail">修改失败</string>
-    <string name="talk_rename_delete_prompt">是否删除“%s”模板?该谈话包含您的待办事项,将一并删除。
-    </string>
+    <string name="talk_rename_delete_prompt">是否删除“%s”模板?该谈话包含您的待办事项,将一并删除。</string>
     <string name="talk_delete_success">删除成功</string>
     <string name="talk_delete_fail">删除失败</string>
 </resources>

+ 15 - 7
lib/module/chat/view.dart

@@ -62,13 +62,13 @@ class ChatPage extends BasePage<ChatController> {
               ),
             ),
           ),
-          body: buildBodyContent(),
+          body: buildBodyContent(context),
         )
       ],
     );
   }
 
-  Widget buildBodyContent() {
+  Widget buildBodyContent(BuildContext context) {
     return Column(
       children: [
         Expanded(
@@ -99,11 +99,19 @@ class ChatPage extends BasePage<ChatController> {
                 enablePullUp: true,
                 onLoading: controller.loadMoreHistory,
                 onRefresh: controller.loadMoreHistory,
-                child: ListView.builder(
-                    reverse: true,
-                    controller: controller.listScrollController,
-                    itemBuilder: _chatItemBuilder,
-                    itemCount: controller.chatItems.length));
+                child: NotificationListener<ScrollNotification>(
+                  onNotification: (scrollNotification) {
+                    if (scrollNotification is ScrollStartNotification) {
+                      FocusScope.of(context).unfocus();
+                    }
+                    return false;
+                  },
+                  child: ListView.builder(
+                      reverse: true,
+                      controller: controller.listScrollController,
+                      itemBuilder: _chatItemBuilder,
+                      itemCount: controller.chatItems.length),
+                ));
           }),
         )),
         Container(