public void setResourceConfig(@NonNull ResourceConfig resourceConfig) {
   mResourceConfig = resourceConfig;
   refreshArrowImg.setImageResource(mResourceConfig.getImageResIds()[0]);
   loadArrowImg.setImageResource(mResourceConfig.getImageResIds()[0]);
   refreshHintText.setText(mResourceConfig.getTextResIds()[0]);
   refreshHintText.setText(mResourceConfig.getTextResIds()[5]);
 }
  /**
   * 加载完毕,显示加载结果。注意:加载完成后一定要调用这个方法
   *
   * @param isSuccess true成功,false代表失败
   */
  public void loadMoreFinish(boolean isSuccess) {
    if (loadingBar == null || loadHintText == null) {
      return;
    }
    loadingBar.clearAnimation();
    loadingBar.setVisibility(View.INVISIBLE);

    if (showRefreshResultEnable) {
      if (isSuccess) { // 加载更多成功
        loadHintText.setText(mResourceConfig.getTextResIds()[8]);
        Drawable drawable =
            ContextCompat.getDrawable(getContext(), mResourceConfig.getImageResIds()[3]);
        loadHintText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
        loadHintText.setCompoundDrawablePadding(dp2px(10));
      } else { // 加载更多失败
        loadHintText.setText(mResourceConfig.getTextResIds()[9]);
        Drawable drawable =
            ContextCompat.getDrawable(getContext(), mResourceConfig.getImageResIds()[4]);
        loadHintText.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
        loadHintText.setCompoundDrawablePadding(dp2px(10));
      }
    }
    if (pullUpY < 0) {
      postDelayed(
          new Runnable() {
            @Override
            public void run() {
              changeStage(DONE);
              hide();
            }
          },
          showRefreshResultEnable ? 1000 : 0); // 判断刷新结果停留1秒
    } else {
      changeStage(DONE);
      hide();
    }
  }
  private void changeStage(int to) {
    stage = to;
    switch (stage) {
      case INIT: // 下拉布局初始状态
        refreshHintText.setText(mResourceConfig.getTextResIds()[0]);
        refreshHintText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
        refreshArrowImg.setVisibility(View.VISIBLE);
        rotateArrow(refreshArrowImg);

        // 上拉布局初始状态
        loadHintText.setText(mResourceConfig.getTextResIds()[5]);
        loadHintText.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
        loadArrowImg.setVisibility(View.VISIBLE);
        rotateArrow(loadArrowImg);
        break;
      case RELEASE_TO_REFRESH: // 释放刷新状态
        refreshHintText.setText(mResourceConfig.getTextResIds()[1]);
        rotateArrow(refreshArrowImg);
        break;
      case REFRESHING: // 正在刷新状态
        refreshArrowImg.clearAnimation();
        refreshingBar.setVisibility(View.VISIBLE);
        refreshArrowImg.setVisibility(View.INVISIBLE);
        refreshHintText.setText(mResourceConfig.getTextResIds()[2]);
        break;
      case RELEASE_TO_LOAD: // 释放加载状态
        loadHintText.setText(mResourceConfig.getTextResIds()[6]);
        rotateArrow(loadArrowImg);
        break;
      case LOADING: // 正在加载状态
        loadArrowImg.clearAnimation();
        loadingBar.setVisibility(View.VISIBLE);
        loadArrowImg.setVisibility(View.INVISIBLE);
        loadHintText.setText(mResourceConfig.getTextResIds()[7]);
        break;
      case DONE: // 刷新或加载完毕,切换到DONE状态
        break;
    }
  }