app/src/main/java/me/zhanghai/android/douya/ui/MergeAdapter.java
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
* Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.ui;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import me.zhanghai.android.douya.util.LogUtils;
public class MergeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private RecyclerView.Adapter[] mAdapters;
private Map<Integer, Integer> mItemViewTypeToAdapterIndexMap = new HashMap<>();
public MergeAdapter(RecyclerView.Adapter... adapters) {
mAdapters = adapters;
for (RecyclerView.Adapter adapter : mAdapters) {
adapter.registerAdapterDataObserver(new AdapterDataObserver(adapter));
}
boolean hasStableIds = true;
for (RecyclerView.Adapter adapter : mAdapters) {
if (!adapter.hasStableIds()) {
hasStableIds = false;
LogUtils.w("not all adapters have stable ids: " + adapter);
}
}
super.setHasStableIds(hasStableIds);
}
public RecyclerView.Adapter[] getAdapters() {
return mAdapters;
}
@Override
public void setHasStableIds(boolean hasStableIds) {
throw new UnsupportedOperationException("cannot set hasStableIds on MergeAdapter");
}
@Override
public int getItemCount() {
int count = 0;
for (RecyclerView.Adapter adapter : mAdapters) {
count += adapter.getItemCount();
}
return count;
}
@Override
public long getItemId(int position) {
后面还有 197 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
