This is a simple cross platform Popup Menu.
I spend a lot of time in creating views, like this and to create a high quality view cost a lot of time. If you want to support me and further views, then you can do it here by Paypal or with a coffee.
Left: B4J Right: B4A
		
		
	
	
		 
	
		 
	
		 
	
		 
	
		 
	
		 
	
	
	
		
			
			
				
					
						
							 www.b4x.com
						
					
					www.b4x.com
				
			
		
	
		 
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
ASPopupMenu
Author: Alexander Stolte
Version: 1.08

	 
			
			I spend a lot of time in creating views, like this and to create a high quality view cost a lot of time. If you want to support me and further views, then you can do it here by Paypal or with a coffee.
Left: B4J Right: B4A
[B4X] AS PopupMenu with icons
https://www.b4x.com/android/forum/threads/b4x-xui-as-popup-menu.121832/       Private Sub ShowMenu          aspm_Main.Initialize(Root,Me,"aspm_Main")       aspm_Main.MenuCornerRadius = 10dip     aspm_Main.ItemLabelProperties.TextAlignment_Horizontal = aspm_Main.OrientationHorizontal_LEFT...
				 www.b4x.com
						
					
					www.b4x.com
				
			
				Fast example:
			
		
		
		aspm_MoreOptions.Initialize(Root,Me,"aspm_MoreOptions")
 
aspm_MoreOptions.ItemLabelProperties.ItemBackgroundColor = xui.Color_ARGB(255,19, 20, 22) 'Change the Background Color of the item
aspm_MoreOptions.AddMenuItem("Share location",1)'Add item
aspm_MoreOptions.AddMenuItem("Settings",2)'Add item
aspm_MoreOptions.OrientationHorizontal = aspm_MoreOptions.OrientationHorizontal_RIGHT
aspm_MoreOptions.OrientationVertical = aspm_MoreOptions.OrientationVertical_BOTTOM
 
aspm_MoreOptions.ItemLabelProperties.BackgroundColor = xui.Color_ARGB(200,0,0,0)'black
 
aspm_MoreOptions.OpenMenu(xlbl_MoreOptions,150dip)Author: Alexander Stolte
Version: 1.08
- ASPM_ItemLabelProperties- Fields:- BackgroundColor As Int
- IsInitialized As Boolean
 Tests whether the object has been initialized.
- ItemBackgroundColor As Int
- LeftRightPadding As Float
- TextAlignment_Horizontal As String
- TextAlignment_Vertical As String
- TextColor As Int
- xFont As B4XFont
 
- Functions:- Initialize
 Initializes the fields to their default value.
 
- Initialize
 
- Fields:
- ASPM_TitleLabelProperties- Fields:- BackgroundColor As Int
- Height As Float
- IsInitialized As Boolean
 Tests whether the object has been initialized.
- ItemBackgroundColor As Int
- LeftRightPadding As Float
- TextAlignment_Horizontal As String
- TextAlignment_Vertical As String
- TextColor As Int
- xFont As B4XFont
 
- Functions:- Initialize
 Initializes the fields to their default value.
 
- Initialize
 
- Fields:
- ASPopupMenu- Events:- ItemClicked (Index As Int, Tag As Object)
 
- Fields:- AutoHideMs As Int
- CloseDurationMs As Int
- OpenDurationMs As Int
 
- Functions:- AddMenuItem (text As String, tag As Object) As String
- AddTitle (Text As String, height As Float) As String
- Class_Globals As String
- Clear  As String
 clears the list
- CloseMenu As String
- CreateASPM_ItemLabelProperties (TextColor As Int, xFont As B4XFont, TextAlignment_Vertical As String, TextAlignment_Horizontal As String, BackgroundColor As Int, ItemBackgroundColor As Int, LeftRightPadding As Float) As ASPM_ItemLabelProperties
- CreateASPM_TitleLabelProperties (TextColor As Int, xFont As B4XFont, TextAlignment_Vertical As String, TextAlignment_Horizontal As String, BackgroundColor As Int, ItemBackgroundColor As Int, LeftRightPadding As Float, Height As Float) As ASPM_TitleLabelProperties
- getBase As B4XView
- getisOpen  As Boolean
 checks if the menu is open
- getItemLabelProperties  As ASPM_ItemLabelProperties
 change the label properties, call it before you add items
 <code>ASScrollingTags1.LabelProperties.xFont = xui.CreateDefaultBoldFont(15)</code>
- GetMenuItemAt_Background (index As Int) As B4XView
 gets a menu item background (parent of label)
- GetMenuItemAt_Label (index As Int) As B4XView
 gets a menu item label - the label with the text
- getOrientationHorizontal_LEFT As String
- getOrientationHorizontal_MIDDLE As String
- getOrientationHorizontal_RIGHT As String
- getOrientationVertical_BOTTOM As String
- getOrientationVertical_TOP  As String
 Vertical = Top,Bottom
 Horizontal = Left,Middle,Right
- getSize  As Int
 gets the list size
- getTitleLabelProperties  As ASPM_TitleLabelProperties
 change the label properties, call it before you add the title
 <code>ASScrollingTags1.TitleLabelProperties.xFont = xui.CreateDefaultBoldFont(20)</code>
- Initialize (Parent As B4XView, CallBack As Object, EventName As String) As String
 Initializes the object. You can add parameters to this method if needed.
- IsInitialized  As Boolean
 Tests whether the object has been initialized.
- OpenMenu (view As B4XView, width As Float)
 Opens the menu on a view
- OpenMenu2 (parent As B4XView, width As Float)
 Open the menu on center of parent/view
- RemoveTitle  As String
 Removes the title if exists
- Resize (parent_width As Float, parent_height As Float) As String
- setActivityHasActionBar (value As Boolean) As String
- setCloseAfterItemClick (enabled As Boolean) As String
 closes the menu automatically after clicking on an item
 standard is True
- setDividerColor (color As Int) As String
 the color of the dividers
- setDividerEnabled (enable As Boolean) As String
 Adds or Removes the dividers
- setDividerHeight (height As Float) As String
 the height of the dividers
- setIsInSpecialContainer (value As Boolean) As String
 set it true if the target is on a listview or as a child on a panel where the left and top values differ from the form
- setItemBackgroundColor (crl As Int) As String
 sets the item background color for all items
- setMenuCornerRadius (radius As Int) As String
- setOrientationHorizontal (orientation As String) As String
- setOrientationVertical (orientation As String) As String
- ViewScreenPosition (view As B4XView) As Int()
 
- Properties:- ActivityHasActionBar
- Base As B4XView [read only]
- CloseAfterItemClick
 closes the menu automatically after clicking on an item
 standard is True
- DividerColor
 the color of the dividers
- DividerEnabled
 Adds or Removes the dividers
- DividerHeight
 the height of the dividers
- IsInSpecialContainer
 set it true if the target is on a listview or as a child on a panel where the left and top values differ from the form
- isOpen As Boolean [read only]
 checks if the menu is open
- ItemBackgroundColor
 sets the item background color for all items
- ItemLabelProperties As ASPM_ItemLabelProperties [read only]
 change the label properties, call it before you add items
 <code>ASScrollingTags1.LabelProperties.xFont = xui.CreateDefaultBoldFont(15)</code>
- MenuCornerRadius
- OrientationHorizontal
- OrientationHorizontal_LEFT As String [read only]
- OrientationHorizontal_MIDDLE As String [read only]
- OrientationHorizontal_RIGHT As String [read only]
- OrientationVertical
- OrientationVertical_BOTTOM As String [read only]
- OrientationVertical_TOP As String [read only]
 Vertical = Top,Bottom
 Horizontal = Left,Middle,Right
- Size As Int [read only]
 gets the list size
- TitleLabelProperties As ASPM_TitleLabelProperties [read only]
 change the label properties, call it before you add the title
 <code>ASScrollingTags1.TitleLabelProperties.xFont = xui.CreateDefaultBoldFont(20)</code>
 
 
- Events:
- 1.00- Release
 
- 1.01- Adds background_color global variable - the background color of the parent view during the menu is open
- Adds setItemBackgroundColor - change the items background color
- Better Handling in "Nested Layouts"
- Add ActivityHasActionBar - set to true if you have a ActionBar enabled
- Add IsInSpecialContainer - set it true if the target is on a listview or as a child on a panel where the left and top values differ from the form
- Add setOrientationVertical
- Add setOrientationHorizontal
- Adds "Enums" for Orientations -TOP,BOTTOM -LEFT,MIDDLE,RIGHT
 
- 1.02- Add OpenMenu2 - Opens the menu in center of the parent view
- Add Clear - clear all
- Add getBase - gets the base view to customize it
- Add getLabelProperties - customize it if you want, before you add a new menu item- this is now possible- aspm_main.LabelProperties.ItemBackgroundColor = xui.Color_ARGB(255,Rnd(1,256), Rnd(1,256), Rnd(1,256))
 
 
- Remove background_color and itembackground_color- Added to getLabelProperties
 
- Add GetMenuItemAt_Label
- Add GetMenuItemAt_Background
- Add getSize
- Add setMenuCornerRadius - sets the corner radius for the menu (works only in B4A and B4I)
 
- 1.03- Add LeftRightPadding to ASPM_LabelProperties - label padding to have more space left and right for example HorizontalCenter = LEFT
- OpenMenu the background is now smoother on show
- setMenuCornerRadius is now available on B4J (thanks @Erel)
 
- 1.04- getLabelProperties is renamed to getItemLabelProperties
- Add AddTitle - you can now add a title to the menu- Add TitleLabelProperties - you can change the title properties with it
 
- Add RemoveTitle - Removes the title if exists
- Add AutoHideMs
- Add DividerEnabled - you can now show dividers between the items- Add DividerHeight - the height of the dividers
- Add DividerColor - the color of the dividers
 
 
- 1.05- OpenMenu Show Animation with the background is now animated
- BugFixes
 
- 1.06- BugFixes
 
- 1.07- Add get isOpen - checks if the menu is open
- BugFix - if you called OpenMenu several times without closing the menu, then the menu was added several times
- Add set CloseAfterItemClick - closes the menu automatically after clicking on an item- standard is True
 
- Add set and get CloseDurationMs - the duration it takes for the menu to be completely closed
- Add set and get OpenDurationMs - the duration it takes for the menu to be fully visible
 
- 1.08- Intern Function IIF renamed to iif2
 
- 1.09- Add set MenuViewGap - sets the gap between the menu and the attached view
- Add get TriangleProperties
- Add set ShowTriangle - only visible if you open the menu with OpenMenu- Default: False
 
 
- 1.10- BugFix
 
- 1.11- Add OpenMenuAdvanced - You can set the Left, Top and Width value to show the menu on the parent
- Add MenuHeight - gets the MenuHeight even if the menu is not yet visible
- BugFixes
 
- 1.12 (read more)- Add get and set ClickColor
- Add get and set BackgroundPanelColor
- B4J Only - Hover Over Item with color
 
- 1.13 (read more)- Add AddMenuItemWithIcon
- Add get IconProperties
- Add get and set ItemHeight
 
- 1.14- Text can now be multiline
 
- 1.15- B4I Improvements - the entire screen is now used for the background shadow- When the navigation bar was hidden, there was an area at the top that did not go dark when the menu was opened
- The height of the area is now determined and the gap closed
- B4XPages is now required in B4I
 
 
- B4I Improvements - the entire screen is now used for the background shadow
- 1.16- BugFix If the icon horizontal alignment is set to center and there is no text, the icon is now displayed in the center
 
- 1.17- BugFix on CloseMenu thanks to @Mike1970
 
Attachments
			
				Last edited: 
			
		
	
							 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		