當(dāng)我們需要顯示一個視圖時,一般是通過調(diào)用IWorkbenchWindow中的getActivePage().showView方法, 但我們有一個問題,就是一般在透視圖中,可能由多個部分構(gòu)成,那么,這個showView到底是要顯示在哪里呢?所以我們需要先解決這個問題.
要解決在哪里進(jìn)行顯示,需要在透視圖中進(jìn)行設(shè)置,用到的是IFolderLayout中的addPlaceholder方法,示例代碼如下:
IFolderLayout folder =layout.createFolder("messages", ipageLayout.BOTTOM, 0.5f,NavigationView.ID);
folder.addPlaceholder(View.ID+ ":*");
這樣,當(dāng)我們調(diào)用showView時,就會按這指定的View.ID,將其顯示在folder在整個透視圖中所占的位置了.
如果我們想在同一個地方允許多個不同的視圖進(jìn)行停靠的話,則繼續(xù)通過addPlaceholder方法進(jìn)行設(shè)置就行了,示例代碼如下:
IFolderLayout folder =layout.createFolder("messages", IPageLayout.BOTTOM, 0.5f,NavigationView.ID);
folder.addPlaceholder(View.ID+ ":*");
folder.addView(View.ID);
folder.addPlaceholder(ViewPart1.ID+ ":*");
Perspective中addPlaceholder的作用表示預(yù)留一個視圖空間,該方法添加的視圖不會顯示在界面上,但是當(dāng)通過操作打開該設(shè)定的
視圖時,將會在該設(shè)定的位置打開,而不是隨意打開該視圖。簡單的說就是為指定的視圖預(yù)留
一個空間,一旦視圖打開就在該空間顯示。
只是占個位,以便于同樣的視圖ID的查找用。
另外,如果允許多個相同的視圖進(jìn)行停靠的話,則需要將對應(yīng)的視圖中的allowMultiple設(shè)置為true即可.
新聞熱點(diǎn)
疑難解答