public void closeAllLayout() {
    if (mUnClosedLayouts.size() == 0) return;

    for (SwipeLayout l : mUnClosedLayouts) {
      l.close(true, false);
    }
    mUnClosedLayouts.clear();
  }
  @Override
  public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder mHolder;
    if (convertView != null) {
      mHolder = (ViewHolder) convertView.getTag();
    } else {
      convertView = (SwipeLayout) mInflater.inflate(R.layout.list_item_swipe, null);
      mHolder = ViewHolder.fromValues(convertView);
      convertView.setTag(mHolder);
    }
    SwipeLayout view = (SwipeLayout) convertView;

    view.close(false, false);

    view.getFrontView()
        .setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(View v) {
                Utils.showToast(mContext, "item click: " + position);
              }
            });

    view.setSwipeListener(mSwipeListener);

    mHolder.mImage.setImageResource(HEAD_IDS[position % HEAD_IDS.length]);
    mHolder.mName.setText(NAMES[position % NAMES.length]);

    mHolder.mButtonCall.setTag(position);
    mHolder.mButtonCall.setOnClickListener(onActionClick);

    mHolder.mButtonDel.setTag(position);
    mHolder.mButtonDel.setOnClickListener(onActionClick);

    TextView mUnreadView = mHolder.mReminder;
    boolean visiable = !mRemoved.contains(position);
    mUnreadView.setVisibility(visiable ? View.VISIBLE : View.GONE);

    if (visiable) {
      mUnreadView.setText(String.valueOf(position));
      mUnreadView.setTag(position);
      GooViewListener mGooListener =
          new GooViewListener(mContext, mUnreadView) {
            @Override
            public void onDisappear(PointF mDragCenter) {
              super.onDisappear(mDragCenter);

              mRemoved.add(position);
              notifyDataSetChanged();
              Utils.showToast(mContext, "Cheers! We have get rid of it!");
            }

            @Override
            public void onReset(boolean isOutOfRange) {
              super.onReset(isOutOfRange);

              notifyDataSetChanged();
              Utils.showToast(mContext, isOutOfRange ? "Are you regret?" : "Try again!");
            }
          };
      mUnreadView.setOnTouchListener(mGooListener);
    }
    ViewHelper.setRotationX(view, 60);
    ViewPropertyAnimator.animate(view)
        .rotationX(0)
        .setDuration(600)
        .setInterpolator(new OvershootInterpolator(8))
        .start();
    ViewHelper.setScaleX(view, 0.4f);
    ViewPropertyAnimator.animate(view)
        .scaleX(1f)
        .setDuration(600)
        .setInterpolator(new OvershootInterpolator(8))
        .start();
    return view;
  }