public void showMenuContent() { setViewsClickable(false); viewList.clear(); double size = list.size(); for (int i = 0; i < size; i++) { View viewMenu = actionBarActivity.getLayoutInflater().inflate(R.layout.menu_list_item, null); final int finalI = i; viewMenu.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { int[] location = {0, 0}; v.getLocationOnScreen(location); switchItem(list.get(finalI), location[1] + v.getHeight() / 2); } }); ((ImageView) viewMenu.findViewById(R.id.menu_item_image)) .setImageResource(list.get(i).getImageRes()); viewMenu.setVisibility(View.GONE); viewMenu.setEnabled(false); viewList.add(viewMenu); animatorListener.addViewToContainer(viewMenu); final double position = i; final double delay = 3 * ANIMATION_DURATION * (position / size); new Handler() .postDelayed( new Runnable() { public void run() { if (position < viewList.size()) { animateView((int) position); } if (position == viewList.size() - 1) { screenShotable.takeScreenShot(); setViewsClickable(true); } } }, (long) delay); } }
private void switchItem(Resourceble slideMenuItem, int topPosition) { this.screenShotable = animatorListener.onSwitch(slideMenuItem, screenShotable, topPosition); hideMenuContent(); }
private void setViewsClickable(boolean clickable) { animatorListener.disableHomeButton(); for (View view : viewList) { view.setEnabled(clickable); } }