Spanish [SOLUCIONADO] Ocultar y mostrar Menú de ActionBar

desof

Well-Known Member
Licensed User
Longtime User
H1wh4zV.png


Tengo un menú que se crea de esta manera ....

B4X:
Sub Activity_Create(FirstTime As Boolean)
  
    Activity.LoadLayout("nuevotem")
    Dim xml As XmlLayoutBuilder
    Dim bd As BitmapDrawable 
  
    'COLOR DE FONDO DE LA ACTIVIDAD
    Activity.Color=Colors.White' AC.GetThemeAttribute("colorAccent")
  
    bd = xml.GetDrawable("ic_camera_alt_white_24dp")
    Activity.AddMenuItem3("Fotos", "Menu", bd.Bitmap, True)
  
    bd = xml.GetDrawable("ic_done_white_24dp")
    Activity.AddMenuItem3("Guardar", "Menu", bd.Bitmap, True)
  
    'LOGO DE LA APP
    ActionBar.LogoBitmap = LoadBitmap(File.DirAssets, "b4a_180.png") 
    
End Sub

Hay alguna forma de Ocultar/Mostrar el icono de la cámara ?

He probado con ActionBar.Menu.Clear que lo elimina pero no lo puedo volver a crear nuevamente una vez iniciada la actividad.
 
Last edited:

desof

Well-Known Member
Licensed User
Longtime User
Bueno hace varios días buscaba esta solución y la encontré acá https://www.b4x.com/android/forum/threads/appcompat-with-toolbar-minimal-example.79896/#content sin querer mirando Tutoriales del Maestro Erel!

Para ocultar un menú creado asi :
B4X:
Dim xml As XmlLayoutBuilder
    Dim bd As BitmapDrawable
   
    bd = xml.GetDrawable("ic_camera_alt_white_24dp")
    Activity.AddMenuItem3("Fotos", "Menu", bd.Bitmap, True)

Sólo basta con crear algo así:
B4X:
Sub UpdateIcon(MenuTitle As String, visible As Boolean)
    Dim m As ACMenuItem = GetMenuItem(MenuTitle)
   ' ES POSIBLE CAMBIARLO AL ICONO SI SE DESEA ACTIVANDO ESTA LINEA
   'Y PASANDO UN PARAMETRO BITMAP. EN ESTE CASO SE ADAPTO SOLO PARA    OCULTARLO
    'm.Icon = BitmapToBitmapDrawable(Icon)icono
    m.Visible=visible
End Sub
'
Sub GetMenuItem(Title As String) As ACMenuItem
        For i = 0 To ActionBar.Menu.Size - 1
            Dim m As ACMenuItem = ActionBar.Menu.GetItem(i)
            If m.Title = Title Then
                Return m
            End If
        Next
        Return Null
End Sub

Y para llamarlo basta con hacerlo así con True o False si queremos mostrarlo u ocultarlo
UpdateIcon("Fotos",False)
 
Last edited:

Seneca

Active Member
Licensed User
Hola.

Creo que para que esté completa la aportación anterior falta publicar el contenido de la rutina GetMenuItem, que es la que selecciona el elemento que se quiere mostrar/ocultar de entre todos los que componen el menú.

Saludos.
 

desof

Well-Known Member
Licensed User
Longtime User
Hola.

Creo que para que esté completa la aportación anterior falta publicar el contenido de la rutina GetMenuItem, que es la que selecciona el elemento que se quiere mostrar/ocultar de entre todos los que componen el menú.

Saludos.[/QUOTE

Listo amigo!!
 
Top