Feature Request: Dynamic list tiles with % constraints, not just pixels


#1

Hi!

Merry Christmas to you all!

I have a list showing some information on a page (actually on many pages), and it is starting to become more and more of an issue for me that the dynamic list tiles sizes can only be adjusted by the number o pixels in the constraints, rather than percent (like we can with pretty much any other element). This makes it very hard to make an app that looks nice across many different devices.

  • I think this problem could be solved altogether if we can do percentages in the constraints instead of only pixels. Not sure what sort of issues this presents in terms of programming it.

Is there a way to get around this issue? Any tips and tricks?

Thank you for your time

Asger


#2

Hi Asger,

Thanks for sharing your particular situation and thoughts on how to solve it. Feel free to also elaborate on it with some screenshots and explaining what you’re encountering so perhaps we can find a solution regardless to help you out here.

On the topic of percentage based cells/tiles constraints… I’m not sure what that percentage would be based on in this regard. Lists sizes are set to a fixed frame and the content tiles are set with px based constraints so that the list knows how big to make each cell so if I said that a tile was 10% tall, what would that actually mean? What would that 10% be based on? The only thing I can think of is that it would be 10% of the total height of the list itself in general and I’m not sure how handy that would be.

Also the dynamic nature of cells is that they can be added and removed without having to completely redraw the whole table. How would something like this effect that? Also, the way lists are created is that all those cells are not created at once. Only the next 1 or 2 are created ahead of time and the app is building those cells as you scroll through and it reuses the cells after you’ve scrolled past them. SO the nature of the cells height would also be difficult to percentage based since the number of cells is dynamic in that regard too. Kind of thinking out loud here on how this is created from the app perspective and how it reuses cells/tiles in a table/list.

I’d love to hear your thoughts on this.

Also I’m flagging @cchute to perhaps join this conversation. It’s an interesting topic and he’s very familiar with this area and since you’re talking about list tiles, I know we’re talking Android talk here.


#3

Thanks Wade, for chiming in! :slight_smile:

I see what you mean. I will get hold of some more phones to get some screenshots as soon as I can.

However, i do think it makes sense to have the dynamic list tiles (and whatever else they’re called on iOS) available with percentage constraints as a percentage of the size of the Dynamic list. So for example, say the dynamic list is 50% of the screen and you have other things going on below it, like buttons. Then the Dynamic tile-for example-could be 50% of that, meaning you would have two visible tiles in that window. If you can only specify the tile size in pixels, that idea will only work on whatever device has the exact same screen size as your Dropsource project. With percentages, that issue would not exist, at least from my understanding of how this works.

In other words, i would suggest it should work just like with a view. If you have a view that takes up 80% (height) of the screen and you have an element inside that which is, say, 20% in height, then it would be 20% of the 80% height view. Does that make sense?

Thanks for explaining how the tiles are created. That’s neat, I didn’t know that :slight_smile:


#4

Great conversation, Asger. Thanks for bringing up this topic.

I’m curious the thought of having a need to know how many tiles are displayed at 1 time on a screen when it’s in a scrollable list. Are you going for a cleaner up front ui before scrolling is taking place or is there a more functional reason to this?


#5

Good question!

  1. Yes, cleaner UI and 2) I have a list where I only have one cell in it. Perhaps I have set it up in a way that is not ideal…
  • At the time I set it up-and this may be for lack of skill-I could only get the API call to work with bubble if I set it up in a dynamic list with a dynamic list tile, even though technically i only need to present ‘one cell’ or one entry from that list of things. Is there a way to work around that?

#6

Ah yes, If you are presenting 1 cell/tile worth of info, a dynamic list might be a bit of a wrong element to handle this. I had a mentor who once said “Sure you can eat ice cream with a knife but you’re going to find some struggles you might not be able to control”. I understand the strategy of “do it this way because it’s how I know how” though. That’s how we all get rolling in this world. Have you learned how to return an object in a API response?

You’re probably going to find more control here if you create this page inside of a view or flat out directly on the page in these situations.


#7

i can understand why you made this decision.
I’m guessing you returned a result from bubble using a search constraint/filter. This will always return a list even if you know there is going to be one item in the list.
And since dropsource currently doesn’t have list functions that allow retrieving the value from a list at a certain index you were stuck with a list that contains a single element.
In bubble you could have called the :first function to get this single element.

Lucky for you i created a post on this forum some time ago for a workaround in addressing this issue.
Link below.
The idea is to use the iterate through list and set the values of each item from your list to a variable.
But since you have only a single element iterating through the list will execute only once.
Which makes this workaround analogous to setting a variable to values from your api result.

If you use this approach you can avoid using the Dynamic list altogether.


#8

Solved my problem altogether. I highly recommend for anyone else reading this, who want consistency across devices.

Also lets you use the data from the API call on elements/variables that otherwise would be outside the dynamic list, which is not possible when using the “dynamic list-dynamic tile” model.


#9

Just a note that you will soon be able to do something with the first item in a list, using our new math action which we’re hoping will be in the platform within a couple weeks. I’ve used it in our development environment to process the first n items and it worked a treat. :crossed_fingers:


#10

Ah yes! Good point, Sue!