Just place the buttons outside of the scrollable container I don't understand the problem. E.g. a south container in a border layout where the box layout Y is scrollable and in the center.
On Wednesday, March 31, 2021 at 9:41:41 AM UTC+3 P5music wrote: > Don't be concerned for native apps, they work, for example the Android > counterpart of my CodenameOne app itself is not affected by this issue > without any workaround. > > Back to the CodenameOne world, what about the question n° 2? > I will break down the request: > first of all, forget the BC, imagine it is not even in the layout, now my > request is: > -how can I stop the scrolling of the BoxLayout.y with buttons > so that > a line of buttons remains visible when the user has scrolled down the > entire UI? > > I think it is not impossible, I asked here also for other developer's > help. Please check attachments in my previous message. > But I think in the end I will have an idea. > If it not feasible I can ponder on disabling the landscape mode of my app > on phones, but this would a serious limitation. > > If you know an elegant way with containers please tell me. Or even a > workaround. > Thank you > Il giorno mercoledì 31 marzo 2021 alle 03:58:01 UTC+2 Shai Almog ha > scritto: > >> I don't think there's a solution for that. I suggest rethinking your UI >> design so the BC is in a single form. Notice that a lot of native apps also >> take that approach because it's REALLY hard to distinguish swipes from edit >> actions. That makes the process inconvenient to users. Just have them click >> to edit and move to a form where the BC is in the center of the form. >> >> On Tuesday, March 30, 2021 at 9:40:44 AM UTC+3 P5music wrote: >> >>> Yes, as said in my previous message, the BC is editable. The keyboard >>> appears when the user taps into it to write >>> but >>> it appears also when trying to scroll the BC to scroll the entire UI. >>> The BC is not inside a BorderLayout, instead it is inside a BoxLayout.y >>> The trick is that the BC has a large preferred H so it scrolls together >>> with the other UI parts, when scrolling outside of the BC. >>> If the user tries to scroll from the inside of it, the touch keyboard >>> appears. >>> It is wrong in all scenarios I think. >>> In particular it is wrong in my scenario where I want that the user can >>> scroll the UI. >>> >>> 1- Any possible solution or workaround for the issue of keyboard >>> appearing when scrolling? >>> This was the first question, it is about the issue of the keyboard >>> appearing. >>> >>> This is another question, it is about the scrolling: >>> 2 - My idea is to stop the scrolling at a certain point >>> and a piece of the other UI is always available for the user as an >>> "handle" to scroll back. The BC is at bottom, the other components are at >>> top. >>> Is it possible to achieve it in an elegant way with containers and >>> things like that? Or with some workaround? >>> I mean, I want that the scroll stops before all the other components are >>> "gone". Let's say that a small area, like 1 cm, remains visible, no further >>> scrolling possible. >>> Please have a look to the attached images: the first image to see is >>> named "landscape_mode", the second image is named >>> "scrolled_UI_lanscape_mode". >>> >>> Regards >>> >>> Il giorno martedì 30 marzo 2021 alle 04:23:56 UTC+2 Shai Almog ha >>> scritto: >>> >>>> I don't follow. What causes the keyboard to appear? >>>> If there a text component within the browser component? Outside of it? >>>> >>>> On Monday, March 29, 2021 at 9:56:17 AM UTC+3 P5music wrote: >>>> >>>>> I checked the code and that line is already present >>>>> setNativeScrollingEnabled(false) >>>>> It seems that the problem is in fact the touch keyboard: >>>>> it appears not only when tapping inside the editable area >>>>> but >>>>> also when scrolling >>>>> so that the keyboard appears and the BC does not scroll as expected in >>>>> the layout. >>>>> Coud it be an issue? >>>>> >>>>> [Or maybe it would not scroll anyway. >>>>> This leads to my originas question] >>>>> >>>>> 1- Any possible solution or workaround for the issue of keyboard >>>>> appearing when scrolling? >>>>> >>>>> My only idea is to stop the scrolling at a certain point so it is not >>>>> complete >>>>> and a piece of the other UI is always available for the user as an >>>>> "handle" to scroll back. >>>>> 2 - Is it possible to achieve it in an elegant way with containers and >>>>> things like that? Or with some workaround? >>>>> >>>>> Regards >>>>> >>>>> Il giorno sabato 27 marzo 2021 alle 05:40:40 UTC+1 Shai Almog ha >>>>> scritto: >>>>> >>>>>> There's setNativeScrollingEnabled(false) on the browser component >>>>>> but it's designed for small snippets of browser component not for large >>>>>> ones. Not sure how well it will behave in a larger case. >>>>>> >>>>>> On Friday, March 26, 2021 at 7:52:38 PM UTC+3 P5music wrote: >>>>>> >>>>>>> I solved the Layout problems by getting rid of the BorderLayout >>>>>>> because in my particular case it is not needed. >>>>>>> Indeed I set the preferredHeight of the BrowserComponent and of its >>>>>>> content to a large value. >>>>>>> Now it is added to a BoxLayout.y() and the user can scroll the >>>>>>> entire interface, >>>>>>> but it seems that the scroll is lost if the other components goes up >>>>>>> too much and just the BC is visible. >>>>>>> >>>>>>> I do not need the scrolling in the BC at all, but I would like that >>>>>>> the user can scroll the entire interface even if the only visible >>>>>>> component >>>>>>> is the BC and the other ones are up too much. >>>>>>> >>>>>>> Is it possible to disable the BC scrolling effectively? (setting the >>>>>>> scrollableY has no effect) >>>>>>> It is not in a BorderLayout, so it has not to take over at all like >>>>>>> you say, it is not needed. >>>>>>> Thanks in advance >>>>>>> >>>>>>> >>>>>>> Il giorno venerdì 19 marzo 2021 alle 08:08:54 UTC+1 Shai Almog ha >>>>>>> scritto: >>>>>>> >>>>>>>> Scrolling can only be handled by one element. The browser component >>>>>>>> is native so only it can scroll. That's why it's in the center of the >>>>>>>> form. >>>>>>>> Center is a special case where scrolling is disabled and size is >>>>>>>> determined >>>>>>>> by available space. So native scrolling in the BC takes over. >>>>>>>> If you add Codename One based scrolling they'll collide and you'll >>>>>>>> get a jumping mess that looks and feels awful. It's an either/or >>>>>>>> situation. >>>>>>>> >>>>>>>> On Thursday, March 18, 2021 at 10:31:07 AM UTC+2 P5music wrote: >>>>>>>> >>>>>>>>> I tried what you suggest, even it is not what I meant. >>>>>>>>> As expected it does not work, because the container in the north >>>>>>>>> position has not to scroll inside itself. >>>>>>>>> >>>>>>>>> Also my idea was not good in the original form I proposed above, >>>>>>>>> so this is the new version: >>>>>>>>> >>>>>>>>> I think that the scrolling of the entire BL (mainContainer) has to >>>>>>>>> happen, in fact it happens even with scrollableY=false. >>>>>>>>> Now I put true but it is the same. >>>>>>>>> >>>>>>>>> The text inside the BC has some strange scrolling, for example if >>>>>>>>> the caret is on the bottom (so there is a lot of text above that has >>>>>>>>> scrolled inside the BC) I can scroll back touching on the beginning >>>>>>>>> of the >>>>>>>>> text, and it scrolls at chunks. Better than nothing. >>>>>>>>> But If I am in landscape mode, it is the container in the north >>>>>>>>> that is lost at sight. >>>>>>>>> >>>>>>>>> It is why I would like to pass the touch move events to the >>>>>>>>> underlying mainContainer. >>>>>>>>> Of course they would be filtered and they would pass only when the >>>>>>>>> BC is in the very top scroll position, otherwise they would be used >>>>>>>>> to >>>>>>>>> scroll the BC itself. >>>>>>>>> >>>>>>>>> Is it possible? >>>>>>>>> Il giorno giovedì 18 marzo 2021 alle 04:09:14 UTC+1 Shai Almog ha >>>>>>>>> scritto: >>>>>>>>> >>>>>>>>>> Make the container in the north scrollable on Y axis e.g. >>>>>>>>>> northContainer.setScrollableY(true). >>>>>>>>>> Make sure it has a layout such as BoxLayout Y. >>>>>>>>>> >>>>>>>>>> On Wednesday, March 17, 2021 at 5:25:10 PM UTC+2 P5music wrote: >>>>>>>>>> >>>>>>>>>>> @Javier >>>>>>>>>>> It is enough that the UI scrolls, not the BC content, its height >>>>>>>>>>> is set at large so it seems very large. >>>>>>>>>>> The user just can touch inside it to set the caret position when >>>>>>>>>>> editing. >>>>>>>>>>> About what you meant about the BC being alone it is not >>>>>>>>>>> necessary. >>>>>>>>>>> >>>>>>>>>>> However what I meant is that >>>>>>>>>>> when the user edits inside the BC the touch-keyboard appears and >>>>>>>>>>> the NORTH part is lifted up and it is lost at sight, so the user >>>>>>>>>>> has not >>>>>>>>>>> any area to drag to scroll back. But the scrolling works before it >>>>>>>>>>> happens. >>>>>>>>>>> In Android two scrolling areas are certainly possible, and one >>>>>>>>>>> can be used when the other has reached its limit. >>>>>>>>>>> I know this is not possible with CodenameOne. >>>>>>>>>>> I am assessing whether my app can be published. There are also >>>>>>>>>>> some checks about the filesystem that would be possible only in the >>>>>>>>>>> iOS >>>>>>>>>>> simulator, I do not know when that new CN feature is available. I >>>>>>>>>>> am >>>>>>>>>>> finishing my Swift project, at least for iOS 14>. >>>>>>>>>>> >>>>>>>>>>> Regards >>>>>>>>>>> >>>>>>>>>>> Il giorno mercoledì 17 marzo 2021 alle 16:06:31 UTC+1 >>>>>>>>>>> [email protected] ha scritto: >>>>>>>>>>> >>>>>>>>>>>> Right, so what I meant is that there can only be 1 BC in >>>>>>>>>>>> CENTER, and nothing anywhere else in the BL. You can't safely >>>>>>>>>>>> scroll a BC, >>>>>>>>>>>> the scrolling is in the BC itself >>>>>>>>>>>> >>>>>>>>>>>> This is accurate as far as I know >>>>>>>>>>>> >>>>>>>>>>>> On Wed, 17 Mar 2021 at 14:32, 'P5music' via CodenameOne >>>>>>>>>>>> Discussions <[email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> @Javier >>>>>>>>>>>>> of course it is in the CENTER of a BL, just there is something >>>>>>>>>>>>> NORTH too. Do not worry. >>>>>>>>>>>>> It has also callbacks inside, like you say. >>>>>>>>>>>>> The question is now how to allow the scrolling back when the >>>>>>>>>>>>> touch keyboard has scrolled the UI too much. >>>>>>>>>>>>> Regards >>>>>>>>>>>>> Il giorno mercoledì 17 marzo 2021 alle 14:09:20 UTC+1 >>>>>>>>>>>>> [email protected] ha scritto: >>>>>>>>>>>>> >>>>>>>>>>>>>> I think this has been discussed before. BrowserComponent is >>>>>>>>>>>>>> meant to be used in the center of a BorderLayout Form. Avoid >>>>>>>>>>>>>> mixing it with >>>>>>>>>>>>>> other components other than a toolbar. If you want to add stuff >>>>>>>>>>>>>> next to >>>>>>>>>>>>>> your BC, add it in the html and pass callbacks >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, 17 Mar 2021 at 11:48, 'P5music' via CodenameOne >>>>>>>>>>>>>> Discussions <[email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have some troubles with the scrollable feature of >>>>>>>>>>>>>>> Containers when a BrowserComponent is involved, especially on >>>>>>>>>>>>>>> simulator. >>>>>>>>>>>>>>> I can have some good functioning on Android if I assign a >>>>>>>>>>>>>>> large height to its content. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> In certain cases the BrowserComponent takes all the space in >>>>>>>>>>>>>>> the UI. >>>>>>>>>>>>>>> My app has an editing screen that has some controls on the >>>>>>>>>>>>>>> top part, and a BC on the bottom part. >>>>>>>>>>>>>>> The UI scrolls but when I start writing into the BC it takes >>>>>>>>>>>>>>> all the space and it is not possible to scroll back or to see >>>>>>>>>>>>>>> or regain >>>>>>>>>>>>>>> control of the top part of the UI. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I would like to pass the touchmove events to the underlying >>>>>>>>>>>>>>> Container. >>>>>>>>>>>>>>> It is a special event that I use along with touchstart and >>>>>>>>>>>>>>> touchend to ensure the scroll events are filtered, but it is >>>>>>>>>>>>>>> used in >>>>>>>>>>>>>>> another BrowserComponent. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Now I want to use it to create a smooth user experience for >>>>>>>>>>>>>>> this BC, passing it in a transformed form to the underlying >>>>>>>>>>>>>>> Container. So I >>>>>>>>>>>>>>> am not going to pass it directly. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I just want to know what method I have to call on the main >>>>>>>>>>>>>>> underlying container to make it scroll. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks in advance >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>>>> Google Groups "CodenameOne Discussions" group. >>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails >>>>>>>>>>>>>>> from it, send an email to >>>>>>>>>>>>>>> [email protected]. >>>>>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>>>> https://groups.google.com/d/msgid/codenameone-discussions/dbbb198e-68ca-4b21-aa2b-0a98411769cbn%40googlegroups.com >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/codenameone-discussions/dbbb198e-68ca-4b21-aa2b-0a98411769cbn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>>>> . >>>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>>> Google Groups "CodenameOne Discussions" group. >>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>>>> >>>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>>>> https://groups.google.com/d/msgid/codenameone-discussions/9ea2af3a-6200-4284-9362-6c136f8518fdn%40googlegroups.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/d/msgid/codenameone-discussions/9ea2af3a-6200-4284-9362-6c136f8518fdn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>>>> . >>>>>>>>>>>>> >>>>>>>>>>>> -- You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/b857569d-97f4-4e57-bbba-0fa69dcd9e13n%40googlegroups.com.
