2016-12-21 2 views
1

My Codename Oneアプリには、テキストを含む3つのSpanLabelsとLayeredLayoutに1つのContainerと、画像とオーバーレイを含むフォームがあります。Codename Oneフォームの垂直スクロール機能の入手方法は?

this.add(BorderLayout.NORTH, spanLab1); 
    this.add(BorderLayout.CENTER, imageCont); 
    this.add(BorderLayout.SOUTH, BoxLayout.encloseY(spanLab2, spanLabl3)); 

これは、以下に生じる:

Form not scrollable (text is irrelevant)

ことがないので、画像が(すなわち、中央に表示され、CN1アイコンでなければならない)スケーリングが、切断されないようにこれが満足のいくものではありません下にスクロールすることができます。

私はフォームをスクロール可能(this.setScrollableY(true))にすることを成功させようとしました。

は、私がどこかでミスをし、例えば はすべて私のコンテンツはNORTH位置はタイトルとオプションのメニューバーのSOUTH 1のために専用されている documentationに応じて以来 BorderLayout.CENTERに配置する必要がなかった(私はせずにこれを試してみました成功)

代わりにダイアログを表示する必要がありますか(Y-Scrollをそのまま使用できます)。画像カットやテキストの重なりがなく、私の(長い)コンテンツをすべて表示するには、実際にはどうすればよいでしょうか?

EDIT 12月22日2016

@Tizbnは、フォームのCONTENTPANEが垂直BoxLayoutにしておく必要があり書いたように。だから、親コンストラクタの呼び出しが書かれなければなりません:

super(new BoxLayout(BoxLayout.Y_AXIS));

は、任意の助けをありがとうございました!

答えて

2

BorderLayoutでは垂直スクロールが無効になっています。そのBoxLayoutではY軸を使用でき、BoxlayoutではsetScrollableY(true)を使用できます。それが助けてくれることを願って。

+1

私は境界線のレイアウトが北/南/東/西に反対の軸に好ましいサイズを与えると付け加えます。それはセンターにリマインダーを与える。通常、枠線レイアウトの側面には、大きくなるもの(例えば、大きなテキストブロック)が必要なわけではありません。 –

+0

これは完璧な方法でした、ありがとう@Tizbn! @Shai私は誤って 'this.add(Component)' <=> 'this.getContentPane()。add()'から誤って[doc](https://www.codenameone.com/manual/components.html)段落はすべて間違っています! – HelloWorld

+0

あなたは大歓迎です@Helloworld – tizbn

関連する問題