i want it should be invisible slowly while opening the navigation
drawer
A really simple way to accomplish this is to utilize View.findViewsWithText
. Here's a quick example:
public class YourActivity extends Activity {
/** Contains our {@linkplain MenuItem menu items} */
private final ArrayList<View> mMenuItems = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
// Initialize the drawer
final DrawerLayout drawer = ...;
drawer.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
animateMenuItems(slideOffset);
}
});
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
// Add some dummy items
menu.add("queue")
.setIcon(R.drawable.ic_menu_queue)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("search")
.setIcon(R.drawable.ic_menu_search)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
// Collect the menu items
final ViewGroup decor = (ViewGroup) getWindow().getDecorView();
decor.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Remove any installed layout listeners
decor.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// Find each MenuItem
findMenuItems(decor, menu);
}
});
return true;
}
/** Used to traverse the decor hierarchy to locate all the menu items */
private void findMenuItems(ViewGroup decor, Menu menu) {
final int size = menu.size();
for (int i = 0; i < size; i++) {
final CharSequence title = menu.getItem(i).getTitle();
if (!TextUtils.isEmpty(title)) {
decor.findViewsWithText(mMenuItems, title, View.FIND_VIEWS_WITH_CONTENT_DESCRIPTION);
}
}
}
/** Used to animate each {@link MenuItem} based on the offset */
private void animateMenuItems(float slideOffset) {
for (final View view : mMenuItems) {
if (view != null) {
view.setAlpha(1f - slideOffset);
}
}
}
}
Results
http://www.gfycat.com/BriskLiquidGaur