2017-12-05 5 views
1

私のコードでは、スクロール可能なコンテナがあります。ユーザーがコンテナをプルダウンすると、リフレッシュ機能が呼び出されます。addPullToRefresh関数が1つの項目だけ存在するときに呼び出されない

venueList = new Container(BoxLayout.y()); 
    venueList.setScrollableY(true); 

    venueList.addPullToRefresh(() -> { 
     refresh(); 
    }); 

これは、コンテナに複数のアイテムがある場合はうまく機能しますが、アイテムが1つ以下の場合は動作しません。

問題は、NetBeansシミュレータとiOSデバイスの両方で発生します。

現時点での回避策は、(Webサービスを呼び出した後の)「REFRESH」という名前の空で、クリックするとrefresh()関数が呼び出されるボタンをリストに追加することです。

答えて

0

更新私はちょうど同じ結果にすぎタブでこれを試してみました:以下

Form hi = new Form("Hi World", new BorderLayout()); 
Tabs t = new Tabs(); 
Container mainContainer = new Container(BoxLayout.y()); 
mainContainer.setScrollableY(true); 
mainContainer.addPullToRefresh(() -> log("Pull...")); 
t.addTab("Test Tabs", mainContainer); 
hi.add(CENTER, t); 
hi.show(); 

enter image description here

オリジナルの答え:

これは私のためにうまく働きました要素がないので私は推測しているgは、このようなネストされたスクロール可能な階層内のコンテナを置くと別の問題があります:

Form hi = new Form("Hi World", new BorderLayout()); 
Container mainContainer = new Container(BoxLayout.y()); 
mainContainer.setScrollableY(true); 
mainContainer.addPullToRefresh(() -> log("Pull...")); 
hi.add(CENTER, mainContainer); 
hi.show(); 

enter image description here

+0

興味深いことに、面白いことに、コンテナを直接フォームに入れずに、タブに入れているということは間違いありません。tabContainer = new Tabs(); ...... tabContainer.addTab( "私の周り"、タビコン、BoxLayout.encloseY(venueList));タブコンテナレベルで設定する必要のある具体的なものはありますか? –

+0

フォーム境界線の中央にタブコンテナがレイアウトされていますか?スクロール可能な要素をネストすると、問題が発生する可能性があることに注意してください。また、この動作に影響する可能性があるので、タブのスワイプを無効にすることもできます。 –

+0

ありがとうございましたShai、はい、それは中心にあり、私は削除するために左スワイプを取得するために私のリスト内でスワイプ可能なボタンを使用しているように、タブ上でスワイプを無効にしました...そこには、タブ? –

0

@Shai、正しい方向に私を指してくれてありがとう、それは確かに営巣問題になってしまいました。

私は、私は次のコードを使用していたタブコンテナに私のリストコンテナを追加しました:

tabContainer.addTab("Around Me",aroundTabicon,BoxLayout.encloseY(venueList)); 

注BoxLayout.encloseYが問題を引き起こしていたことを、私はそれを削除し、以下になってしまいました。

tabContainer.addTab("Around Me",aroundTabicon,venueList); 

これは今働いているようです...もう一度ありがとうございます。

関連する問題