• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

代号一个 – 避免在Android屏幕尺寸变化对应用程序启动时

codenameone 来源:Francesco Galgani 5次浏览

这个问题产生于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()); 
    }); 

===========解决方案如下:

我们只是传递视图的大小和我们从Android获得的事件。原因可能与在启动时可能隐藏的状态栏有关,然后为了兼容性而添加。

我们有一个RFE到enable status bar hiding on Android这可能会解决这个问题虽然与Android,这也许可以在状态栏默认是不隐藏在其他设备中的类似问题……


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)