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 
>>>>>>>>>>> javier...@gmail.com 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 <codenameone...@googlegroups.com> 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 
>>>>>>>>>>>>> javier...@gmail.com 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 <codenameone...@googlegroups.com> 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 
>>>>>>>>>>>>>>> codenameone-discu...@googlegroups.com.
>>>>>>>>>>>>>>> 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 codenameone-discu...@googlegroups.com.
>>>>>>>>>>>>>
>>>>>>>>>>>> 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 codenameone-discussions+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/b857569d-97f4-4e57-bbba-0fa69dcd9e13n%40googlegroups.com.

Reply via email to