2016-04-01 9 views
1

2つのタブを持つフォームにタブコンテナがあります。最初のタブにはリストがあり、リスト項目がクリックされると、2番目のタブがsetSelectedIndexを使用してスクロールされます。最初はタブはスクロールできません。ただし、2番目のタブをスワイプしたとき。ユーザーがスワイプジェスチャーを使用して戻ることができるように、タブをスクロール可能にします。だから私はswipeActivatedを最初にfalseに設定し、次にリスト項目をクリックするとsetSwipeActivatedをtrueにしてフォームを再検証しようとしますが、アプリケーションを実行するときにスワイプジェスチャをアクティブにしません。ここに私のコードです。アプリとして呼び出され タブのsetSwipeActivatedに関する問題。

が開かれます。

public void setUpMainPage() { 
    mainForm = (Form) u.createContainer(theme, "MainPage"); 
    Tabs mainTabs = (Tabs) u.findByName("MainTabs", mainForm); 
    mainTabs.setAnimateTabSelection(false); 
    mainTabs.setSwipeActivated(false); 
    findContainer = (Container) u.findByName("GridContainer",  
mainForm); 

    setUpFindContainer(); 
    setUpMibrand(); 
    setUpVouchers(); 
    setUpHomePage(); 

    findTabs = (Tabs) u.findByName("FindTabs", mainForm); 
    findTabs.hideTabs(); 
    findTabs.setSwipeActivated(false); 

    insideTabs = (Tabs) u.findByName("InsideTabs", mainForm); 
    insideTabs.hideTabs(); 
    insideTabs.setSwipeActivated(false); 

    homeTabs = (Tabs) u.findByName("HomeTabs", mainForm); 
    homeTabs.hideTabs(); 
    homeTabs.setSwipeActivated(false); 

    mainForm.show(); 
} 

リスト項目のActionListener:

class findActionListener implements ActionListener { 

    String[] categoryList = {"Shopping Malls", "Food & Dining", "Clothing & Accessories", "Grocery Stores", 
     "Nightlife & Drinks", "Electronics", "Fitness & Health", "Travel & Hotels", 
     "Activities & Events", "Sports Gear", "House & Home", "Baby & Kids", "Beauty & Spa", "Motoring", "Liquor Stores", "More"}; 

    int index; 
    Label categoryLabel; 
    public findActionListener(int i, Label catLabel) { 
     index = i; 
     categoryLabel = catLabel; 
    } 

    public void actionPerformed(ActionEvent evt) { 
     findTabs.setSelectedIndex(1, true); 
     //I set the swipe activated to true on click. Before I switch 
     //tabs 
     findTabs.setSwipeActivated(true); 
     categoryLabel.setText(categoryList[index]); 
     setUpFindList(categoryList[index]); 
     mainForm.revalidate(); 
    } 

} 

私が間違ってやっている何かがあるのか​​、私は可能ではない達成したい何ですか?

+0

swipeActivatedを切り替えることはできませんか?スクロール可能と言うときはスワイプ可能なものを参照していますか?スクロールとタブのスワイプは完全に別々のアクションであることに注意してください。タブがスクロールしていない親で正しいサイズを占めるように、タブが親フォーム内の枠線レイアウトの中央にあることを確認します。 –

+0

@ShaiAlmog私は、タブをスワイプブルにすることについて話しています。私がsetUpMainPage()でそれを切り替えると、スワイプします。私が抱えている問題は、スワイプを最初に防ぎ、リスト項目をクリックしてselectedIndexが変更されるとアクティブにすることだけです。だから私はいつもswipeActivatedをトグルして不安定にする必要があります。 – Kyri33

+0

@ShaiAlmog奇妙なことに。ダイアログを開いてそのダイアログを破棄すると、タブはスワイプできます。したがって、単にtabs.setSwipeActivated(true)を呼び出して、タブをスワイプすることができないフォームを再検証するだけです。しかし、setSwipeActivated(true)を呼び出した直後に、空のダイアログを表示してからそれを破棄すると、タブが突然スワイプできるようになります。 setSwipeActivatedをトリガーしているダイアログを作成、表示、破棄するときに呼び出されるもの。無意味なダイアログを作成するのではなく、私はそれを呼び出すことができます。明らかな理由から。 – Kyri33

答えて

0

タブのGUIビルダーUIで、[スワイプアアクティブ]がオフになっていることを確認します。

また、setSwipeActivatedを呼び出すコードには到達していないことを確認してください。

+0

GUIビルダーにswipeActivatedチェックボックスはありません。スクロール可能なxについて話していますか? – Kyri33

+0

任意のタイプのスクロールは、いずれかのタブまたはその親に対してアクティブ化されてはなりません。 setSwipeActivatedへの呼び出しにブレークポイントを設定しましたか? –