Медленное UI строительство - PullRequest
0 голосов
/ 20 сентября 2018

Я делаю список логотипов внутри BoxLayout.Y_AXIS.это занимает слишком много времени, чтобы быть показанным.Логотипы загружаются из хранилища.Я совсем новичок в коденамоне, менее трех месяцев, и код, который я использую ниже:

 public void makeList( ) {

        this.membersContainer.removeAll();

        int membersNo = this.members.size();

        ToastBar.showInfoMessage("Βρέθηκαν " + membersNo);
        for( Map.Entry<String,String[]> entry: this.members.entrySet() ) {
            Button b = new Button();
            b.setUIID("Label");
            b.setUnselectedStyle( this.itemStyle);

            Object[] s = entry.getValue();  
            try {

                ToastBar.showInfoMessage( s[0].toString() );
                b.setIcon( EncodedImage.create( Storage.getInstance().createInputStream( s[0].toString()) ) );
                b.addActionListener(e -> {
                    new MemberGui ( entry.getKey(), s[0].toString(), s[1].toString(), s[2].toString(), s[3].toString(), this ).show();
                });
            }
            catch(IOException ex) {
                ToastBar.showErrorMessage(ex.getMessage());
            }
            this.membersContainer.add(b);


        }   

    }

Мне интересно, есть ли другой способ создать этот список логотипов?Прямо сейчас это занимает более 40 секунд, чтобы показать этот экран на iphone 7 плюс.

спасибо.

1 Ответ

0 голосов
/ 21 сентября 2018

Используйте InfiniteContainer и загружайте только 10 логотипов одновременно.Смотри https://www.codenameone.com/javadoc/com/codename1/ui/InfiniteContainer.html

...