widgets prey para ocultar grindr como carpetas app aplicación aplicaciones android hide navigation-drawer

prey - Ocultar un elemento de menú del cajón de navegación-Android



como ocultar widgets en android (6)

Esto funcionará como setInvisibility ( GONE ):

Menu nav_Menu = navigationView.getMenu(); nav_Menu.findItem(R.id.nav_profile).setVisible(false); nav_Menu.findItem(R.id.menu_login).setVisible(true); nav_Menu.findItem(R.id.menu_logout).setVisible(false); nav_Menu.findItem(R.id.menu_regsitration).setVisible(true);

Tengo un cajón de navegación. Cuando se llama a un evento, quiero ocultar uno de los elementos del menú de navegación para el usuario. ¿Cómo puedo hacer eso?

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sliding_menu); if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } mTitle = mDrawerTitle = getTitle(); // load slide menu items navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items); // nav drawer icons from resources navMenuIcons = getResources() .obtainTypedArray(R.array.nav_drawer_icons); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout1); mDrawerList = (ListView) findViewById(R.id.list_slidermenu1); navDrawerItems = new ArrayList<NavDrawerItem>(); // adding nav drawer items to array // Home navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1))); // Profil navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1))); // Prospek navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1))); // Announcement navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, cariTotal("http://192.168.0.23/api/android/announcement/").toString())); // Logout navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1))); // Recycle the typed array navMenuIcons.recycle(); //set event mDrawerList.setOnItemClickListener(new SlideMenuClickListener()); // setting the nav drawer list adapter adapter = new NavDrawerListAdapter(getApplicationContext(), navDrawerItems); mDrawerList.setAdapter(adapter); // enabling action bar app icon and behaving it as toggle button getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.app_name, R.string.app_name ){ public void onDrawerClosed(View view) { getSupportActionBar().setTitle(mTitle); // calling onPrepareOptionsMenu() to show action bar icons invalidateOptionsMenu(); } public void onDrawerOpened(View drawerView) { getSupportActionBar().setTitle(mDrawerTitle); //mDrawerList.bringToFront(); //mDrawerLayout.requestLayout(); // calling onPrepareOptionsMenu() to hide action bar icons invalidateOptionsMenu(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); if (savedInstanceState == null) { // on first time display view for first nav item displayView(0); } } private void displayView(int position) { // update the main content by replacing fragments android.app.Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment = new ProfilFragment(); break; case 2: fragment = new ProspekFragment(); break; case 3: fragment = new AnnouncementFragment(); break; case 4: Logout(); break; default: break; } if (fragment != null) { android.app.FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, fragment).commit(); // update selected item and title, then close the drawer mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); setTitle(navMenuTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } else { // error in creating fragment Log.e("SlidingMenu", "Error in creating fragment"); } }

Quiero ocultar mi elemento del menú del cajón de navegación en el índice 2. ¿Cómo hacer eso?

ACTUALIZAR Tengo 5 elementos de menú en mi panel de navegación, quiero ocultar uno de ellos cuando se llama a algún evento.


NavigationView navigationView;

mapIntentActivity = getIntent(); navItemString = mapIntentActivity.getStringExtra("success"); if(navItemString != null) { navigationView = (NavigationView) findViewById(R.id.nav_view); Menu nav_Menu = navigationView.getMenu(); nav_Menu.findItem(R.id.nav_car).setVisible(false); }


Puede eliminar el segundo elemento de listview a través del siguiente código:

navDrawerItems.remove(2); ((BaseAdapter)adapter).notifyDataSetChanged();


Ocultar / Mostrar elemento de navegación

Realice cambios en su NavDrawerListAdapter de la siguiente manera:

public class MyListAdapter extends BaseAdapter { Context context; ArrayList<ItemListModel> listMenuItem; ArrayList<ItemListModel> listMenuItem1; int hideViewIndex = -1; public MyListAdapter(Context context, ArrayList<ItemListModel> listMenuItem) { this.context = context; this.listMenuItem = listMenuItem; listMenuItem1=new ArrayList<ItemListModel>(listMenuItem); } @Override public int getCount() { return listMenuItem.size(); } @Override public Object getItem(int position) { return listMenuItem.get(position); } @Override public long getItemId(int position) { return position; } private class ViewHolder { private ImageView imgLogo; private TextView txtItemName; } public void hideView(int pos) { listMenuItem.remove(pos); notifyDataSetChanged(); } public void showView(int pos) { listMenuItem.add(pos, listMenuItem1.get(pos)); notifyDataSetChanged(); } @SuppressLint("InflateParams") @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if(convertView == null) { LayoutInflater myLayoutInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = myLayoutInflater.inflate(R.layout.activity_item_list, null); viewHolder = new ViewHolder(); viewHolder.imgLogo = (ImageView) convertView.findViewById(R.id.imgLogo); viewHolder.txtItemName = (TextView) convertView.findViewById(R.id.txtItemName); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } ItemListModel itemListModel = listMenuItem.get(position); viewHolder.imgLogo.setImageDrawable(itemListModel.getImageLogo()); viewHolder.txtItemName.setText(itemListModel.getStrItemName()); return convertView; }

y llama a este método en actividad como sigue,

adapter.hideView(2); //adapter.showView(2);


NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); Menu menu =navigationView.getMenu(); MenuItem target = menu.findItem(R.id.nav_target); target.setVisible(false);


NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); hideItem(); } private void hideItem() { navigationView = (NavigationView) findViewById(R.id.nav_view); Menu nav_Menu = navigationView.getMenu(); nav_Menu.findItem(R.id.nav_settings).setVisible(false); }