2017-03-19 20 views
1

嗯,這是我第一次在真實的Android設備上測試我的應用程序。用戶界面佈局與模擬器有着驚人的不同。請看圖片:Codename One:模擬器上的用戶界面佈局和真實的Android設備完全不同

enter image description here

enter image description here

的代碼是相同的,什麼也沒有改變。

Android版本是5.1.1。

的代碼顯示屏幕:

private final void show() { 
    loginSignupForm = new Form(null, new BorderLayout()); 
    Tabs loginSignupTabs = new Tabs(); 
    Image splashScreenImage = theme.getImage("Starlent_logo25x25.png"); 
    ((Label) loginSignupForm.getToolbar().getTitleComponent()).setIcon(splashScreenImage); 
    Style loginSignupStyle = UIManager.getInstance().getComponentStyle("Tab"); 
    prepareAndAddSignupTab(loginSignupTabs, loginSignupStyle); 
    prepareAndAddLoginTab(loginSignupTabs, loginSignupStyle); 
    loginSignupForm.add(BorderLayout.CENTER, loginSignupTabs); 
    loginSignupForm.show(); 
} 

那麼,如何管理或期望的佈局要在不同的設備?

至少,我希望將徽標放置在Android設備的中心。我怎麼做?

+0

嗨,在「新建項目」創建階段,您是否選擇了「原生主題」模板?這似乎是您使用的主題適應設備的操作系統平臺。因此,模擬器具有iOS設備和iOS主題,Android設備具有Android本機主題,因此佈局不同(這是默認的OS標準)。您可以覆蓋所有這些設置。最快的方法是使用不同的主題,方法是打開資源編輯器(theme.res)文件。並添加現有的紅色,藍色或商業主題。 –

+0

是的,我特意選擇了本地主題。換句話說,我必須讓它適應平臺的默認主題。那麼集中標誌呢?如果我能將徽標居中,那就沒問題了(假設我的其他屏幕沒有更多驚喜)。 – ikevin8me

+0

它看起來像模擬器是iPhone和真實設備的屏幕截圖是Android。這是差異的原因嗎?我可能是錯的。 –

回答

1

您正在使用本機主題,如果您安裝了Android外觀,您將看到該主題在模擬器上的行爲也是如此,因爲這是故意的。

您的主題和代碼可以覆蓋特定於平臺的行爲以產生相同的結果,例如覆蓋標籤放置等。雖然如果標籤在底部,應用程序不會覺得在Android上是原生的。

相關問題