@Override
  public boolean onTouchEvent(MotionEvent event) {
    mDragHelper.processTouchEvent(event);

    final int action = event.getAction();
    final float x = event.getX();
    final float y = event.getY();

    // 触摸点是否落在HeaderView上
    boolean isHeaderViewUnder = mDragHelper.isViewUnder(mHeaderView, (int) x, (int) y);

    switch (action & MotionEventCompat.ACTION_MASK) {
      case MotionEvent.ACTION_DOWN:
        {
          mInitialMotionX = x;
          mInitialMotionY = y;
          break;
        }
      case MotionEvent.ACTION_UP:
        {
          final float dx = x - mInitialMotionX;
          final float dy = y - mInitialMotionY;
          final float slop = mDragHelper.getTouchSlop();

          LogUtil.i(TAG, "dx * dx + dy * dy = " + dx * dx + dy * dy);
          LogUtil.i(TAG, "slop * slop = " + slop * slop);
          LogUtil.i(TAG, "mDragOffset:" + mDragOffset);
          if (dx * dx + dy * dy < slop * slop && isHeaderViewUnder) {
            if (Constants.hasEnterpriseAccountLoggedIn()) {
              if (onFlagAreaExpandLis != null) {
                onFlagAreaExpandLis.onSAASCMSSwitch();
              }
            } else {
              if (mDragOffset == 0) {
                minimize();
              } else {
                maximize();
              }
            }
          } else {
            if (Constants.hasEnterpriseAccountLoggedIn()) {
              if (onFlagAreaExpandLis != null) {
                onFlagAreaExpandLis.onSAASCMSSwitch();
              }
            }
          }
          break;
        }
    }

    return isHeaderViewUnder && isViewHit(mHeaderView, (int) x, (int) y)
        || isViewHit(mContentView, (int) x, (int) y);
  }
 /** 打开 */
 public void minimize() {
   if (mHeaderView.getVisibility() == View.VISIBLE) {
     if (onFlagAreaExpandLis != null) {
       onFlagAreaExpandLis.onFlagAreaExpand();
     }
     smoothSlideTo(1.0f);
   }
 }