private void showContextMenuFromView( final View openingView, int feedItem, FeedContextMenu.OnFeedContextMenuItemClickListener listener) { if (!isContextMenuShowing) { isContextMenuShowing = true; contextMenuView = new FeedContextMenu(openingView.getContext()); contextMenuView.bindToItem(feedItem); contextMenuView.addOnAttachStateChangeListener(this); contextMenuView.setOnFeedMenuItemClickListener(listener); ((ViewGroup) openingView.getRootView().findViewById(android.R.id.content)) .addView(contextMenuView); contextMenuView .getViewTreeObserver() .addOnPreDrawListener( new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { contextMenuView.getViewTreeObserver().removeOnPreDrawListener(this); setupContextMenuInitialPosition(openingView); performShowAnimation(); return false; } }); } }