为什么我的组件没有出现在代号一中的 HTML 页面或媒体播放器的顶部

Why Doesn't My Component Appear On Top of The HTML Page Or Media Player In Codename One

我使用了一个媒体播放器,我正在尝试在其上使用进度指示或按钮进行渲染,但代码无法正常工作。

例如:

findInfiniteProgress().setVisible(true);
  Timer timer = new Timer();
  TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            Display.getInstance().callSerially(new Runnable() {
               @Override
                public void run() {
                    if(findMediaPlayer().getMedia() != null && findMediaPlayer().getMedia().isPlaying()){
                    findInfiniteProgress(f).setVisible(false);
                    }else{
                    findInfiniteProgress(f).setVisible(true);
                    }
                }
            });
        }
    };

Codename One 使用轻量级渲染,这意味着所有组件都在单个线程上按顺序绘制。本机小部件(对等)需要在本机线程上绘制,并且始终在顶部绘制,这就是 Codname Ones 可移植性解释的秘密 here

代号一中的常见对象包括:Web 浏览器、媒体播放和本地地图。

解决方法是使用 Dialog,它实际上是一个单独的 Form,因此当前对等体不会真正呈现在下方。