2016-02-14 35 views
1

This is what I have right now This is what I want it to be如何使組件在Tab菜單上方移動?

當我點擊「標籤」組件,它顯示了它周圍的邊緣(除了說「互動故事」的頂部)整個事情。

我想知道如何讓MultiButton走到「Tabs」組件底部菜單的上方。所以有一個BorderLayout的區域,當我將它的佈局約束設置爲「South」時,我想要的是它在菜單上方,而不是在它下面。因爲如果我以前嘗試過這樣做,「選項卡」的菜單部分將與其重疊。

我已經看過「我如何使用佈局管理器定位組件」視頻,並沒有解釋我想要什麼;如果是這樣,我沒有抓住它。

這裏的GitHub庫如果要在所有幫助:https://github.com/gogobebe2/InteractiveStories

如果你需要我澄清的事情,因爲我承認這可能不是很好的英語,請告訴我。我決心解決這個問題。謝謝堆:)

編輯:解決!打開theme.res文件,轉到主題中的常量選項卡,並刪除tabsOnTopBool常量布爾值。非常感謝https://stackoverflow.com/users/756809/shai-almog

回答

2

Tabs組件具有特殊模式,該模式在皮革主題中被激活以允許「UI效果」疊加在UI之上。然後它將填充添加到內容窗格的底部,以允許您在選項卡內滾動更多。

它使用的主題不變tabsOnTopBool=true做到這一點,如果是這樣的話,它使用的BorderLayout一種特殊形式:

border.setCenterBehavior(BorderLayout.CENTER_BEHAVIOR_TOTAL_BELOW); 

如果檢查出docs for CENTER_BEHAVIOR_TOTAL_BELOW您將看到:

中央組件佔據整個屏幕,並且側面被自動地放置在其上面,從而產生分層效果

這有點沒有文檔,所以我將這個文檔添加到我的任務列表中...

+0

謝謝。 2個問題。我將如何從Tabs組件獲得邊界實例[我通過findTabs()獲得了哪個邊框實例?另外我會在哪裏設置中心行爲/代碼的東西?我是否將它設置在StateMachine.java內的initVars(Resources res)中?對不起,如果這是一個初學者的問題,這是我的第一個代號名一個應用程序。 – gogobebe2

+0

你不需要邊界實例。打開主題,轉到主題中的常量選項卡,並將'tabsOnTopBool'轉換爲'false'。 –

+0

耶!現在我讀了你的問題,我明白了。謝謝謝謝,我是你工作的忠實粉絲:) – gogobebe2

1

你正處在正確的軌道上,並將它放置在Tab的南部。事實上,這是做到這一點的最佳方式。

您可以給Story Maker容器一個獨特的樣式,比如說ContainerBottomMargin2有2毫米的底部邊距或填充。這會將容器向上推,以避免重疊。

您還可以將您的TabsContainer設置爲擁有2mm頂部填充。因爲North,South,East和West都優先於中心,所以如果可能,Tab按鈕將總是覆蓋TabbedPane上的組件。由於按鈕位於南方,因此您將內容添加到中心。

+0

我不確定我是否正確或不正確,但我創建了一個名爲ContainerBottomMargin2的新「未選定」UIID類型,並轉到了邊距標籤,未選中「派生」並將2毫米添加到底部。然後,我去了「TabsContaner」,取消了「派生」框並更改了填充,使頂部有2個Milimeters。它沒有工作:/ – gogobebe2

+0

http://i.imgur.com/1sAp1jE.jpg和http://i.imgur.com/5HQaz38.jpg顯示了現在的藍色線條。 – gogobebe2