Android Question B4xtable - adding submenu on click

DarkoT

Active Member
Licensed User
Hi guys,

I need info... It's possible to add "submenu" into B4X table grid as submenu; which appears on CellLongClick from existing record in grid and user can choice which functionality will use...

Thank you for help...

Br, DaT
 

mangojack

Expert
Licensed User
Longtime User
One solution if I understand correctly ...

Add a Spinner to the Column Cells ....

See this thread ... replace the ImageView / Flag with your spinner.
 
Upvote 0

DarkoT

Active Member
Licensed User
One solution if I understand correctly ...

Add a Spinner to the Column Cells ....

See this thread ... replace the ImageView / Flag with your spinner.

Uf, maybe I was not precise enough... I want to add new functionality to GridView; when user use "longclick" on some record in grid, system will open "left menu" - like this:

1602492819629.png



Can I add this "submenu" into Grid logic?

Regards,
Darko
 
Upvote 0

mangojack

Expert
Licensed User
Longtime User
For the Menu .. possibly just some labels added to a panel

You could calculate the top position from VisibleRowID ... but unsure of method to calculate left position. (especially if user starts scrolling)
* but you would also have to allow / recalculate if user long clicks last few rows ..

B4X:
Sub B4XTable1_CellLongClicked (ColumnId As String, RowId As Long)
	Dim visibleRowID As Int = B4XTable1.VisibleRowIds.IndexOf(RowId)
	pnlMenu.Visible = True
	pnlMenu.SetLayoutAnimated(0, 100dip, 140dip +(visibleRowID * 42dip) , 100dip, 100dip) 'Top value .. 140dip for header height
End Sub
 
Last edited:
Upvote 0

DarkoT

Active Member
Licensed User
For the Menu .. possibly just some labels added to a panel

You could calculate the top position from VisibleRowID ... but unsure of method to calculate left position. (especially if user starts scrolling)
* but you would also have to allow / recalculate if user long clicks last few rows ..

B4X:
Sub B4XTable1_CellLongClicked (ColumnId As String, RowId As Long)
    Dim visibleRowID As Int = B4XTable1.VisibleRowIds.IndexOf(RowId)
    pnlMenu.Visible = True
    pnlMenu.SetLayoutAnimated(0, 100dip, 140dip +(visibleRowID * 42dip) , 100dip, 100dip) 'Top value .. 140dip for header height
End Sub
Thanks ... Have you any example with panel? What should be a part of panel? Fixed text or grid? I need to add more (5 - 8 "lines" to menu)...
I'm new with android programming, so - need more help... ;)

Regards, DaT
 
Upvote 0

mangojack

Expert
Licensed User
Longtime User
Thanks ... Have you any example with panel? What should be a part of panel? Fixed text or grid? I need to add more (5 - 8 "lines" to menu)...
I'm new with android programming, so - need more help... ;)

Have you read the Guides and tutorials... further down is a link for Video Tutorials as well.


I have attached a small example that supplies a menu on Long_Click of the first Column cells. It has been restricted to the first column only.
Adapt it to your needs. It has been commented well.
I have not tested the accurate positioning of the menu across devices.

I have seen an example of balloon shaped panel / view in the forum if that interests you. (Have not searched)
There is probably other views that could be used as a menu as well.
 

Attachments

  • B4XTableMenuExample.zip
    14.9 KB · Views: 291
Upvote 0

DarkoT

Active Member
Licensed User
Have you read the Guides and tutorials... further down is a link for Video Tutorials as well.


I have attached a small example that supplies a menu on Long_Click of the first Column cells. It has been restricted to the first column only.
Adapt it to your needs. It has been commented well.
I have not tested the accurate positioning of the menu across devices.

I have seen an example of balloon shaped panel / view in the forum if that interests you. (Have not searched)
There is probably other views that could be used as a menu as well.
Clear...
Thx...
 
Upvote 0
Top