2011-05-11 90 views
1

我正在將VerticalFieldManager添加到屏幕。我畫的背景圖像,並在屏幕的底部刪除空格,當用戶向下滾動即時通訊覆蓋sublayout我verticalfieldmanager像這樣:覆蓋屏幕或VerticalFieldManager上的子圖層

protected void sublayout(int maxWidth, int maxHeight) { 
    super.sublayout(maxWidth, maxHeight); 
    setExtent(maxWidth,Constants.BACKGROUND_IMAGE.getHeight()); 
} 

這不起作用 - 空格出現在底部用戶向下滾動時的屏幕。我認爲在屏幕對象上覆蓋使用相同代碼的sublayout將優先於VerticalFieldManager,它是屏幕的子節點。

回答

2

有幾件事要檢查。如果在您的MainScreen上調用super(VERTICAL_SCROLL | USE_ALL_WIDTH),那麼您的屏幕管理器將是實際向下滾動的管理器,而不是您定製的VFM。你可以嘗試覆蓋你的VFM的paint()方法,並做如下的事情:

protected void paint(Graphics graphics) { 
    graphics.drawBitmap(0, getVerticalScroll(), bg.getWidth(), bg.getHeight(), bg, 0, 0); 
    super.paint(graphics); 
} 

這應該讓你的背景「移動」滾動。

+0

不應該超級被稱爲第一?在這種情況下,它會覆蓋drawBitmap? – 2014-06-25 06:59:21

+1

這是一個背景,所以你想先畫出來,然後讓其他所有東西畫在上面(通過調用'super()')。 – jprofitt 2014-06-25 13:45:44

+0

感謝您的解釋! :) – 2014-06-25 14:10:34