融雲 IM SDK 整合 — 重新整理會話介面和會話列表介面

小小小不啊發表於2020-12-02

融雲 IM SDK 整合 — 重新整理會話介面和會話列表介面

最近整合融雲 IMkit 發現, 融雲 IMkit 提供的 ConversationListFragment 和 ConversationFragment 都沒有提供重新整理方法.

我們有個需求是, 使用 Message 的 extra 修改值後, 但是介面沒有進行重新整理, 需要自己呼叫程式碼進行重新整理, 但是, 融雲沒有提供對應的重新整理介面的方法, 所以只能看程式碼.

重新整理 ListView 是需要獲取 Adapter , 然後使用 Adapter 進行重新整理, 但是我們無法從 ConversationListFragment 中直接獲取, 那怎麼辦呢?

我們知道, ListView 中有 getAdapter 的方法. 那我們能不能先獲取 ListView 控制元件呢? 答案是可以的. 我們通過 findById 方法即可獲取 ListView. 通過查詢, 我們可以知道, 融雲會話列表的 listView 的 id 為 R.id.rc_list.

所以程式碼如下.

ListView mList = (ListView)findViewById(R.id.rc_list);
HeaderViewListAdapter adapter = (HeaderViewListAdapter)mList.getAdapter();
ConversationListAdapter wrappedAdapter = (ConversationListAdapter)adapter.getWrappedAdapter();
if (adapter != null) {
    wrappedAdapter.notifyDataSetChanged();
}

相關文章