TIMUIKitSearch

组件介绍及使用场景

组件介绍:uikit搜索组件。

使用场景:根据关键字搜索用户、群组、聊天记录时使用。

参数列表

参数 说明 类型 是否必填
onTapConversation 点击用户模块、群组模块、搜索详细聊天记录内信息模块的回调函数 Function(V2TimConversation, V2TimMessage?)
onEnterSearchInConversation 点击聊天历史模块的回调函数 Function(V2TimConversation conversation, String initKeyword)

代码示例与效果展示

onTapConversation

onTapConversation为点击用户模块、群组模块、搜索详细聊天记录内信息模块的回调函数。

  • 代码示例为使用自定义onTapConversation做到点击用户跳转到用户聊天页面、点击群组跳转到群组聊天页面、点击详细聊天记录内信息模块进入聊天页面的示例。

代码示例

  @override
  Widget build(BuildContext context) {
    final isConversation = (conversation != null);
    final TIMUIKitConversationController _conversationController =
        TIMUIKitConversationController();
    void _handleOnConvItemTapedWithPlace(V2TimConversation? selectedConv,
        [V2TimMessage? toMessage]) async {
      await Navigator.push(
          context,
          MaterialPageRoute(
            builder: (context) => Chat(
              selectedConversation: selectedConv!,
              initFindingMsg: toMessage,
            ),
          ));
      _conversationController.reloadData();
    }

    final theme = Provider.of<DefaultThemeData>(context).theme;
    return Scaffold(
      appBar: AppBar(
        iconTheme: const IconThemeData(
          color: Colors.white,
        ),
        elevation: 0,
        backgroundColor: theme.primaryColor,
        title: Text(
          isConversation
              ? (conversation?.showName ??
                  conversation?.conversationID ??
                  imt("相关聊天记录"))
              : imt("全局搜索"),
          style: const TextStyle(
            color: Colors.white,
            fontSize: 17,
          ),
        ),
      ),
      body: isConversation
          ? TIMUIKitSearchMsgDetail(
              currentConversation: conversation!,
              onTapConversation: _handleOnConvItemTapedWithPlace,
              keyword: initKeyword ?? "",
            )
          : TIMUIKitSearch(
              onEnterSearchInConversation:
                  (V2TimConversation conversation, String keyword) {
                Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) => Search(
                        onTapConversation: _handleOnConvItemTapedWithPlace,
                        conversation: conversation,
                        initKeyword: keyword,
                      ),
                    ));
              },
              onTapConversation: _handleOnConvItemTapedWithPlace,
              conversation: conversation,
            ),
    );
  }

效果展示

onEnterSearchInConversation

onEnterSearchInConversation为点击聊天历史模块的回调函数。

  • 代码示例为使用自定义onEnterSearchInConversation做到点击聊天历史模块进入搜索详细聊天记录页面的示例。

代码示例

  @override
  Widget build(BuildContext context) {
    final isConversation = (conversation != null);
    final TIMUIKitConversationController _conversationController =
        TIMUIKitConversationController();
    void _handleOnConvItemTapedWithPlace(V2TimConversation? selectedConv,
        [V2TimMessage? toMessage]) async {
      await Navigator.push(
          context,
          MaterialPageRoute(
            builder: (context) => Chat(
              selectedConversation: selectedConv!,
              initFindingMsg: toMessage,
            ),
          ));
      _conversationController.reloadData();
    }

    final theme = Provider.of<DefaultThemeData>(context).theme;
    return Scaffold(
      appBar: AppBar(
        iconTheme: const IconThemeData(
          color: Colors.white,
        ),
        elevation: 0,
        backgroundColor: theme.primaryColor,
        title: Text(
          isConversation
              ? (conversation?.showName ??
                  conversation?.conversationID ??
                  imt("相关聊天记录"))
              : imt("全局搜索"),
          style: const TextStyle(
            color: Colors.white,
            fontSize: 17,
          ),
        ),
      ),
      body: isConversation
          ? TIMUIKitSearchMsgDetail(
              currentConversation: conversation!,
              onTapConversation: _handleOnConvItemTapedWithPlace,
              keyword: initKeyword ?? "",
            )
          : TIMUIKitSearch(
              onEnterSearchInConversation:
                  (V2TimConversation conversation, String keyword) {
                Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) => Search(
                        onTapConversation: _handleOnConvItemTapedWithPlace,
                        conversation: conversation,
                        initKeyword: keyword,
                      ),
                    ));
              },
              onTapConversation: _handleOnConvItemTapedWithPlace,
              conversation: conversation,
            ),
    );
  }

效果展示

results matching ""

    No results matching ""