I will have a look at the Component Inspector.
But you seem very confident about the TL-BC behaviour, so I think it's me
that cannot guess the right constraint to the TL.
Please give me two lines of code where you create a working 50/50 TL layour
with two BCs that expand vertically.
1 row and 2 columns, each BC has to take all the available vertical space.
Thanks in advance
Il giorno lunedì 24 agosto 2020 alle 03:53:38 UTC+2 Shai Almog ha scritto:
> You need to use Component inspector to look at hierarchies, it shows the
> layout and would have made this easier to spot.
> You shouldn't use non-center border layout for browser component.
>
> If you place TableLayout on the form itself. Disable scrolling and add
> both rows with height set to 50 (and no other constraints) you'd get a
> perfectly split 50/50 layout.
>
> On Sunday, August 23, 2020 at 1:27:04 PM UTC+3 P5music wrote:
>
>> I realized that the default form layout is FlowLayout and not
>> BorderLayout (I do not where I read that) so it is not a bug, although I
>> would expect an error or warning when using BorderLayout constraints in the
>> add() call.
>> Said that it is not possible to use a TableLayout to split the screen
>> 50/50 with two BrowserComponents, whatever I try. I do not know if that's a
>> bug.
>> I only succeded in creating a similar layout just adding the BC CENTER
>> and WEST, but they are not 50/50, one is smaller.
>> Take into account that in the two BCs there is multiline text with
>> overflow:scroll and white-spaces:nowrap so you just imagine that scrollbars
>> allow to see what's not visible horizontally for example, so,the BCs have
>> taken all available space and share it with some ratio like 70/30.
>> Is there any constraint to correct this?
>>
>> Il giorno domenica 23 agosto 2020 alle 04:54:01 UTC+2 Shai Almog ha
>> scritto:
>>
>>> You can't rely on that. The layout code is very cross platform since
>>> it's 100% Java. The things that behave differently are native e.g. the
>>> browser.
>>> In this case I'm pretty sure the layout will misbehave. You need to
>>> create 100% deterministic layout with no scrolling for the browser
>>> component. That means the layout manager will know the size and won't need
>>> the value of getPreferredSize().
>>>
>>> On Saturday, August 22, 2020 at 11:10:27 AM UTC+3 P5music wrote:
>>>
>>>> If the BrowserComponent itself (rendering, updating, Javascript) would
>>>> not have issues on the real iOS app (native build) like they exist on the
>>>> simulator, I wonder whether also these layout issues are automatically
>>>> happening on the real iOS app.
>>>> Unfortunately iOS builds are "costly" in terms of credits, I cannot use
>>>> them to test the layout and the BrowserComponent. Furthermore Chrome
>>>> mirroring for debugging does not work, I see a blank screen.
>>>>
>>>> Il giorno sabato 22 agosto 2020 alle 07:16:42 UTC+2 Shai Almog ha
>>>> scritto:
>>>>
>>>>> You don't need the border layout. This is only a tip for the simple
>>>>> usage in a form.
>>>>> Using the same strings make it hard for me to read the code and
>>>>> screenshot without trying it.
>>>>>
>>>>> If you think there's a bug you can file an issue. Unfortunately you
>>>>> probably understand we have a deep issue pipeline and it takes us a long
>>>>> while to evaluate everything.
>>>>>
>>>>> On Friday, August 21, 2020 at 11:23:10 AM UTC+3 P5music wrote:
>>>>>
>>>>>> I use BL surrounding a BC because I think I have understood that it
>>>>>> "encourages" the BC to spread. And other BLs are surrounding.
>>>>>> It is a trial/error method but now I am stuck.
>>>>>> I wanted to show you a possible issue: indeed the layout is inverted,
>>>>>> what is CENTER is at the top and what is NORTH is at the bottom. This
>>>>>> could
>>>>>> be of interest in general if a bug is discovered.
>>>>>> Back to my layout, text is not important, the BC do not spread, this
>>>>>> is the problem. If you will test the code, you can also remove something
>>>>>> redundant, or tweak it, so I have the solution, otherwise it is a bug,
>>>>>> this
>>>>>> is of interest for you anyway, I think, solving this would shed light on
>>>>>> the subject..
>>>>>> Thanks in advance
>>>>>>
>>>>>> Il giorno venerdì 21 agosto 2020 alle 06:44:38 UTC+2 Shai Almog ha
>>>>>> scritto:
>>>>>>
>>>>>>> You can nest a border layout in a table cell although I'm not sure
>>>>>>> what the benefit would be but this is OK.
>>>>>>>
>>>>>>> You lost me a bit with all the level of nesting all over the place,
>>>>>>> reading the code I have no idea how it should look by now and since
>>>>>>> everything is conveniently named "Multiline text" my brain is stack
>>>>>>> overflowing..
>>>>>>>
>>>>>>> I suggest opening this in Component Inspector and looking at the
>>>>>>> sizes of each component in the hierarchy. Where they were placed and
>>>>>>> why.
>>>>>>> On Thursday, August 20, 2020 at 12:07:48 PM UTC+3 P5music wrote:
>>>>>>>
>>>>>>>> You have to see the attached image, that corresponds to the code
>>>>>>>> below: you can see an inverted layout, indeed the instructions text is
>>>>>>>> at
>>>>>>>> the bottom, while it is added NORTH to the form. And what you see at
>>>>>>>> the
>>>>>>>> top is added CENTER. I was trying some changes and stumbled into this.
>>>>>>>> Am I
>>>>>>>> wrong? Is this an issue?
>>>>>>>>
>>>>>>>> As to my real code, I am not using CENTER constraint in the TL.
>>>>>>>> Just each cell is a BL container with the BC inside, I used this
>>>>>>>> scheme for
>>>>>>>> another layout and it worked.
>>>>>>>> If you mean that the TL should not be CENTER in a BL, also if I put
>>>>>>>> it in a BoxLayout.y the layout does not work.
>>>>>>>> 100% height is not harmful I think because there is just one row,
>>>>>>>> however I removed it.
>>>>>>>> the form was set not scrollable.
>>>>>>>> But still the BC do not take the space.
>>>>>>>>
>>>>>>>> Here's the code that I talked about. If I am not wrong this could
>>>>>>>> be an issue.
>>>>>>>> Anyway can you suggest some tweaks using it as a starting point,
>>>>>>>> said that the intended layout is that the two BCs are at the bottom
>>>>>>>> and
>>>>>>>> they are expanded to show full text?
>>>>>>>> Thanks in advance
>>>>>>>>
>>>>>>>> private void createForm()
>>>>>>>> {
>>>>>>>> Command backCommand=new Command("Back") {
>>>>>>>> @Override
>>>>>>>> public void actionPerformed(ActionEvent evt) {
>>>>>>>> parentForm.showBack();
>>>>>>>> }
>>>>>>>> };
>>>>>>>>
>>>>>>>> this.setScrollable(false);
>>>>>>>> getToolbar().setBackCommand(backCommand);
>>>>>>>>
>>>>>>>> setTitle(formTitle);
>>>>>>>> Container mainContainer=new Container();
>>>>>>>>
>>>>>>>> mainContainer.setLayout(BoxLayout.y());
>>>>>>>>
>>>>>>>> TableLayout tl=new TableLayout(1,2);
>>>>>>>> Container tableContainer=new Container();
>>>>>>>> tableContainer.setLayout(tl);
>>>>>>>>
>>>>>>>>
>>>>>>>> Container centerContainerLeft=new Container(new
>>>>>>>> BorderLayout());
>>>>>>>> Container centerContainerRight=new Container(new
>>>>>>>> BorderLayout());
>>>>>>>>
>>>>>>>> SpanLabel textArea=new SpanLabel();
>>>>>>>>
>>>>>>>> textArea.setText("Multiline text\nMultiline text\nMultiline
>>>>>>>> text\nMultiline text\n");
>>>>>>>> add(BorderLayout.NORTH,textArea);
>>>>>>>>
>>>>>>>>
>>>>>>>> BrowserComponent textAreaLeft=new BrowserComponent();
>>>>>>>>
>>>>>>>> textAreaLeft.setPage("<HTML><BODY><DIV
>>>>>>>> style='overflow-x:scroll;'>"+"Multiline Text</BR>Multiline
>>>>>>>> Text</BR>Multiline Text</BR>Multiline
>>>>>>>> Text</BR></DIV><BODY></HTML>","");
>>>>>>>> centerContainerLeft.add(BorderLayout.CENTER,textAreaLeft);
>>>>>>>>
>>>>>>>> BrowserComponent textAreaRight=new BrowserComponent();
>>>>>>>>
>>>>>>>> textAreaRight.setPage("<HTML><BODY><DIV
>>>>>>>> style='overflow-x:scroll;'>"+"Multiline Text</BR>Multiline
>>>>>>>> Text</BR>Multiline Text</BR>Multiline
>>>>>>>> Text</BR></DIV><BODY></HTML>","");
>>>>>>>>
>>>>>>>> centerContainerRight.add(BorderLayout.CENTER,textAreaRight);
>>>>>>>>
>>>>>>>>
>>>>>>>> tableContainer.add(tl.createConstraint().widthPercentage(50),centerContainerLeft).
>>>>>>>>
>>>>>>>> add(tl.createConstraint().widthPercentage(50),centerContainerRight);
>>>>>>>> mainContainer.add(tableContainer);
>>>>>>>> add(BorderLayout.CENTER,mainContainer); //same if I add tl directly
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Il giorno giovedì 20 agosto 2020 alle 03:44:47 UTC+2 Shai Almog ha
>>>>>>>> scritto:
>>>>>>>>
>>>>>>>>> Don't use center constraint in the table layout. It will break
>>>>>>>>> everything. Leave it as the default.
>>>>>>>>> Height should never be 100 as all the heights together should come
>>>>>>>>> up to 100 (it's in percent).
>>>>>>>>> Don't use span, it makes column calculation hard and spanning 2000
>>>>>>>>> columns is probably not what you're trying to do.
>>>>>>>>>
>>>>>>>>> Also make sure you invoked form.setScrollable(false).
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
--
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/296a7063-55b7-4283-a216-0183ddf5721bn%40googlegroups.com.