2017-07-31 142 views
1

我已經完成了我自己的PropertyCross演示版本(在他們的演示部分中提供)。Codename one - 可滾動佈局限制

我目前面臨的問題是「最近搜索」區域的大小。雖然我有一個不可滾動的容器,但我可以輕鬆定義首選高度。由於箱佈局堅持首選大小,一切都很好,與不能夠把它的滾動,看到不止一個結果的小問題:

recentSearchContainer = new Container(new BoxLayout(BoxLayout.Y_AXIS)); recentSearchContainer.setPreferredH((int)(this.getContentP‌​ane().getHeight() * 0.1f));

有一次,我的容器設置爲滾動時,首選高度會被覆蓋,並佔用儘可能多的空間,從BorderLayout Center上方的空間佔用太多空間。

如何操作可滾動組件的首選大小?

Location Search button is not visible.

回答

1

您不操縱首選大小。可滾動區佔用更多的空間,所以如果您需要它們佔用特定的空間量,則需要使用正確的佈局類型,在這種情況下可能不是邊界佈局...

邊界佈局給出了NORTH/SOUTH元素他們喜歡的高度可能不是你想要的。你可能需要一個網格佈局來分割高度50/50。您可能需要一個表佈局,您可以定義百分比等

0

對於那些有興趣誰的高度,這裏是解決方案:

  1. 設置與單個列和多行的表格佈局因爲您需要(類似於箱子佈局y軸或只有北,中,南的邊界佈局)。

  2. 將表格佈局設置爲不可滾動,因此它默認爲屏幕的100%。

  3. 添加組件的高度應該佔用屏幕的百分比。

  4. 這些組件可以滾動,並且仍然會堅持高度限制!

    // inside a form object, setup the layout 
    TableLayout tl = new TableLayout(3, 1); 
    tl.setGrowHorizontally(true); 
    setScrollable(false); 
    setLayout(tl); 
    ... 
    // and add stuff to it 
    add(tl.createConstraint().heightPercentage(15), labelDesc); 
    add(tl.createConstraint().heightPercentage(50), compGroup); 
    add(tl.createConstraint().heightPercentage(35), recentSearchContainer); 
    

就像一個魅力!