TableLayout tl = TableLayout(2, 1);
myForm.setLayout(tl);
myForm.setScrollable(false);
myForm.add(tl.cc().hp(50), bc1);
myForm.add(tl.cc().hp(50), bc2);
On Monday, August 24, 2020 at 12:54:50 PM UTC+3 P5music wrote:

> 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/3c60510c-6718-4fb3-87fb-b1c9b98ce307n%40googlegroups.com.

Reply via email to