Saltar al contenido

Barra de herramientas dentro de CardView para crear un menú emergente (icono de desbordamiento)

Nuestro equipo de expertos pasados ciertos días de trabajo y recopilar de información, dieron con la solución, esperamos que te sea útil en tu plan.

Solución:

Paso 1 crear menú emergente xml



    

    



Paso 2: haga un botón de imagen en su tarjeta

 

luego dale un icono de drawable

Paso 3: dentro de su clase titular

y configure el elemento, haga clic en el listner dentro de onBindViewHolder

mImageButton= (ImageButton) view.findViewById(R.id.imageButton);
holder.mImageButton.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View view) 
                showPopupMenu(holder.mImageButton,position);
            
        );

Paso 4: muestra el menú emergente e infla el xml

  private void showPopupMenu(View view,int position) 
        // inflate menu
        PopupMenu popup = new PopupMenu(view.getContext(),view );
        MenuInflater inflater = popup.getMenuInflater();
        inflater.inflate(R.menu.popup_menu, popup.getMenu());
        popup.setOnMenuItemClickListener(new MyMenuItemClickListener(position));
        popup.show();
    

Paso 5: implementar OnMenuItemClickListener

     class MyMenuItemClickListener implements PopupMenu.OnMenuItemClickListener 

        private int position;
        public MyMenuItemClickListener(int positon) 
            this.position=positon;
        

        @Override
        public boolean onMenuItemClick(MenuItem menuItem) 
            switch (menuItem.getItemId()) 

                case R.id.Not_interasted_catugury:
                    String RemoveCategory=mDataSet.get(position).getCategory();
                    // mDataSet.remove(position);
                    //notifyItemRemoved(position);
                   // notifyItemRangeChanged(position,mDataSet.size());

                    mySharedPreferences.saveStringPrefs(Constants.REMOVE_CTAGURY,RemoveCategory,MainActivity.context);
                    Toast.makeText(MainActivity.context, "Add to favourite", Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.No_interasted:
                    mDataSet.remove(position);
                    notifyItemRemoved(position);
                    notifyItemRangeChanged(position,mDataSet.size());
                    Toast.makeText(MainActivity.context, "Done for now", Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.delete:
                    mySharedPreferences.deletePrefs(Constants.REMOVE_CTAGURY,MainActivity.context);
                default:
            
            return false;
        
    

Depende de su diseño.

Si desea un diseño como este, con una barra de herramientas puede lograrlo más fácilmente.
ingrese la descripción de la imagen aquí

Algo como



   

        

        //......

   



toolbar.inflateMenu(R.menu.card_toolbar);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener()..);

Si solo desea una ventana emergente, es más simple usar una imagen. Algo como:

PopupMenu popup = new PopupMenu(getContext(), mImageButton);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(......);

Si te ha resultado de utilidad nuestro post, sería de mucha ayuda si lo compartieras con el resto programadores así contrubuyes a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.