この問題は、Android上の2つの望ましくない影響生み出す:私はしたくない (アプリ起動時)SizeChangedListener
のコードネーム1つのアプリの起動時にAndroid上で画面サイズの変更を避け
- つの実行を。
- アプリが表示されてから、 が開始された後に、フォームの背景が目に見えて望ましくないサイズ変更されました。 (オプション:
Style.BACKGROUND_IMAGE_SCALED_FILL
)12-18:00:49:45.594 D/SizeChangedListener(17264):[EDT] 0:0:0
三星銀河S8 +でテスト次のコードは、このログを生成します、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 12-18 00:49:45.633 I/WebViewFactory(17264):com.google.android.webviewバージョン60.0.3112.107(コード311210750) 12-18 00:49:45.634 D/SizeChangedListener(17264):[ EDT] 0:0:0,61 - "hiフォーム"のSizeChangedListenerが呼び出されました... 12-18 00:49:45.635 D/SizeChangedListener(17264):[EDT] 0:0:0,64 - 新規画面サイズ:* 1945 1080
これは私がこの問題を複製するために使用される非常に簡単なコードです:
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);を追加しました。フォームの背景の不必要なサイズ変更の問題を解決しました(明らかに?)。よりよい回避策を提案できますか?ありがとうございました:) –
クラッシュを引き起こす可能性があるので、それはあなたがすべきことではありません。それが問題なら、私はちょうど別の背景パターンを設定します。 –
なぜクラッシュする可能性がありますか? –