/** * Set a footer view to the menu. * * @param footerView The footer view. * */ public Builder setFooterView(View footerView){ mImpl.setFooterView(footerView); return this; }
/** * Add a row into the menu with the item view. * * @param itemAnimation The animation when item is displayed, if it's null, do not need to display animation. * @param timoItemViewParameters The parameter of the item views. * */ public Builder addRow(ItemAnimation itemAnimation, List<TimoItemViewParameter> timoItemViewParameters){ mImpl.addRow(itemAnimation, timoItemViewParameters); return this; }
.build(); View footer = getLayoutInflater().inflate(R.layout.layout_footer, mTimoMenu.getMenuView(), false); footer.setOnClickListener(new View.OnClickListener() { @Override mTimoMenu.setFooterView(footer);
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ if (mTimoMenu.isShowing()){ mTimoMenu.dismissImmediately(); return true; } } return super.onKeyDown(keyCode, event); }
/** * This menu will attached to a viewgroup. * */ public Builder(ViewGroup rootView){ Preconditions.checkNotNull(rootView, "The parameter 'rootView' can not be null."); mImpl = new TimoMenu(rootView); }
protected TimoMenu(ViewGroup rootView){ mRootView = rootView; init(); }
public void dismiss() { innerDismiss(false); }
private void checkDismissAnimationCounter(){ mAnimationCounter--; if (mAnimationCounter == 0){ dismissFinished(); } }
private void init(){ mMenuMarginRect = new Rect(); mMenuPaddingRect = new Rect(); mBackgroundView = new BackgroundView(mRootView.getContext()); mBackgroundView.setOnClickListener(mBackgroundViewClickListener); mMenuView = new MenuView(mBackgroundView.getContext()); mMenuView.setItemClickListener(mItemClickListener); mMenuView.setItemTouchListener(mItemTouchListener); if (ViewUtils.isAttachedToWindow(mRootView)){ addBackgroundViewToRootView(); }else{ mRootView.getViewTreeObserver().addOnGlobalLayoutListener(mRootViewGlobalLayoutListener); } }
/** * This menu will attached to an activity, will * add the menu to activity.getWindow().getDecorView(). * */ public Builder(Activity activity){ Preconditions.checkNotNull(activity, "The parameter 'activity' can not be null."); mImpl = new TimoMenu(activity); }
protected TimoMenu(Activity activity){ mRootView = (ViewGroup) activity.getWindow().getDecorView(); init(); }
public void dismissImmediately() { innerDismiss(true); }