code: void removeCroutonImmediately(Crouton crouton) {
      // if Crouton has already been displayed then it may not be in the queue (because it was popped).
      // This ensures the displayed Crouton is removed from its parent immediately, whether another instance
      // of it exists in the queue or not.
      // Note: crouton.isShowing() is false here even if it really is showing, as croutonView object in
      // Crouton seems to be out of sync with reality!
      if (null != crouton.getActivity() && null != crouton.getView() && null != crouton.getView().getParent()) {
        ((ViewGroup) crouton.getView().getParent()).removeView(crouton.getView());
  
        // remove any messages pending for the crouton
        removeAllMessagesForCrouton(crouton);
      }
      // remove any matching croutons from queue
      final Iterator<Crouton> croutonIterator = croutonQueue.iterator();
      while (croutonIterator.hasNext()) {
        final Crouton c = croutonIterator.next();
        if (c.equals(crouton) && (null != c.getActivity())) {
          // remove the crouton from the content view
          removeCroutonFromViewParent(crouton);
  
          // remove any messages pending for the crouton
          removeAllMessagesForCrouton(c);
  
          // remove the crouton from the queue
          croutonIterator.remove();
  
          // we have found our crouton so just break
          break;
        }
      }
    }
docs: Removes a {@link Crouton} immediately, even when it's currently being
  displayed.
  
  @param crouton
  The {@link Crouton} that should be removed.