最近集成融云 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();
}


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业