2013-04-08 27 views
2

正如您從SSCCE所看到的那樣,我會執行setBanner()和setStatus(),然後只在其間添加EditField。如果在火炬上設置了邊距,則EditField被切斷

現在在火炬上,如果您在EditField中輸入了大量字符,直到其高度超出橫幅和狀態之間的區域,則最後一行文本會與狀態欄重疊。見截圖:enter image description here

這隻發生,當我爲EditField設置一個邊距,但顯然我需要這個邊距。似乎是一個火炬錯誤,因爲它適用於其他BB設備。但是,有沒有人可能知道解決方法?

這裏是SSCCE:

import net.rim.device.api.browser.field2.BrowserField; 
import net.rim.device.api.ui.Color; 
import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.EditField; 
import net.rim.device.api.ui.container.HorizontalFieldManager; 
import net.rim.device.api.ui.container.MainScreen; 
import net.rim.device.api.ui.decor.BackgroundFactory; 

public class CutOff extends UiApplication implements Runnable 
{ 
    /** 
    * @param args 
    */ 
    public static void main(final String[] args) 
    { 
     final CutOff bt = new CutOff(); 
     bt.invokeLater(bt); 
     bt.enterEventDispatcher(); 

    } 

    public void run() 
    { 
     final MainScreen s = new MainScreen(); 
     //header 
     final HorizontalFieldManager head = new HorizontalFieldManager(); 
     head.add(new ButtonField("header")); 
     s.setBanner(head); 

     //footer 
     final HorizontalFieldManager hf = new HorizontalFieldManager(); 
     hf.setBackground(BackgroundFactory.createSolidBackground(Color.RED)); 
     hf.add(new ButtonField("test")); 
     final EditField f = new EditField(); 
     f.setMargin(10, 10, 10, 10); 
     s.add(f); 
     s.setStatus(hf); 

     UiApplication.getUiApplication().pushScreen(s); 
    } 

} 

感謝

回答

2

試試這個 -

您EditField中加入一個Horizo​​ntalFieldManager。

 final MainScreen s = new MainScreen(); 
    //header 
    final HorizontalFieldManager head = new HorizontalFieldManager(); 
    head.add(new ButtonField("header")); 
    s.setBanner(head); 

    //footer 
    final HorizontalFieldManager hf = new HorizontalFieldManager(); 
    hf.setBackground(BackgroundFactory.createSolidBackground(Color.RED)); 
    hf.add(new ButtonField("test")); 
    HorizontalFieldManager h=new HorizontalFieldManager(HorizontalFieldManager.VERTICAL_SCROLL); 
    final EditField f = new EditField(); 
    f.setMargin(10, 10, 10, 10); 
    h.add(f); 
    s.add(h); 
    s.setStatus(hf); 

    UiApplication.getUiApplication().pushScreen(s);