app/src/main/java/me/zhanghai/android/douya/ui/LoadMoreAdapter.java

(开头部分) 5KB

这里只显示每个文件的开头 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.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;

import butterknife.BindView;
import butterknife.ButterKnife;
import me.zhanghai.android.douya.R;
import me.zhanghai.android.douya.util.ViewUtils;

public class LoadMoreAdapter extends MergeAdapter {

    private LoadMoreViewAdapter mViewAdapter;

    public LoadMoreAdapter(int loadMoreLayoutRes, RecyclerView.Adapter<?>... adapters) {
        super(mergeAdapters(adapters, new LoadMoreViewAdapter(loadMoreLayoutRes)));

        adapters = getAdapters();
        mViewAdapter = (LoadMoreViewAdapter) adapters[adapters.length - 1];
        mViewAdapter.setParentAdapter(this);
    }

    private static RecyclerView.Adapter<?>[] mergeAdapters(RecyclerView.Adapter<?>[] adapters,
                                                           RecyclerView.Adapter<?> adapter) {
        RecyclerView.Adapter<?>[] mergedAdapters = new RecyclerView.Adapter<?>[adapters.length + 1];
        System.arraycopy(adapters, 0, mergedAdapters, 0, adapters.length);
        mergedAdapters[adapters.length] = adapter;
        return mergedAdapters;
    }

    public boolean isProgressVisible() {
        return mViewAdapter.isProgressVisible();
    }

    public void setProgressVisible(boolean progressVisible) {
        mViewAdapter.setProgressVisible(progressVisible);
    }

    static class LoadMoreViewAdapter extends RecyclerView.Adapter<LoadMoreViewAdapter.ViewHolder> {

        private int mLoadMoreLayoutRes;

        private boolean mShowingItem;

        private ViewHolder mViewHolder;
        private boolean mProgressVisible;

        public LoadMoreViewAdapter(int loadMoreLayoutResId) {

            mLoadMoreLayoutRes = loadMoreLayoutResId;

            setHasStableIds(true);
后面还有 111 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。