這個問題產生於Android 2個不良影響:代號一個 - 避免在Android屏幕尺寸變化對應用程序啓動時
的SizeChangedListener
的
- 一個執行(在應用程序啓動),我 不想;
- 剛開始應用程序 後,表單背景 (與選項
Style.BACKGROUND_IMAGE_SCALED_FILL
)的可見和不需要的調整大小。
下面的代碼,在三星Galaxy S8 +測試,產生該日誌:
12-18 00:49:45.594 d/SizeChangedListener(17264):[EDT] 0:0:0 ,22 - 初始屏幕大小:1080 * 2008 12-18 00:49:45.596 I/System.out(17264):showKeyboard false 12-18 00:49:45.623 D /代號1(17264):sizechanged :1080 1945 [email protected] 12-18 00:49:45.627 D/libEGL(17264):loaded /vendor/lib64/egl/libGLES_mali.so加載com.google.android.webview版本60.0.3112.107(代碼311210750) 12-18 00:49:45.634 D/SizeChangedListener(17264):[ EDT] 0:0:0,61 - 調用「hi Form」上的SizeChangedListener ... 12-18 00:49:45.635 D/SizeChangedListener(17264):[EDT] 0:0:0,64 - New屏幕尺寸:1080×1945
這是非常簡單的代碼,我用複製此問題:
public void start() {
if (current != null) {
current.show();
return;
}
Form hi = new Form("Hi World", BoxLayout.y());
hi.add(new Label("Hi world"));
Log.p("Initial Screen size: " + hi.getWidth() + " * " + hi.getHeight());
hi.show();
hi.addSizeChangedListener(l -> {
Log.p("SizeChangedListener on \"hi Form\" invoked...");
Log.p("New Screen size: " + hi.getWidth() + " * " + hi.getHeight());
});
在同時,作爲臨時解決方法,我只是在'hi.show();'之前添加'TestUtils.waitFor(500);'。它(顯然?)解決了不必要的窗體背景大小調整問題。你能建議我一個更好的解決方法嗎?謝謝:) –
這不是你應該做的,因爲它可能會導致崩潰。如果這是一個問題,我會設置不同的背景圖案。 –
它爲什麼會導致崩潰? –