Собственный код (скрыть панель навигации на Android), который хорошо компилируется, но не работает в Codename One

#codenameone

#codenameone

Вопрос:

Мне нужно реализовать собственный код в Codename One, чтобы скрыть панель навигации приложения (панель под приложением, в которой есть кнопки «Назад» и «Домой»).). Для этого я попытался использовать собственный интерфейс в Codename One. Мой код компилируется очень хорошо, но когда я выполняю на устройстве, ничего не происходит. Вот мой собственный код реализации:

 public class NavigationBarImpl {
    public void masquerNavigationBar() {

        //        com.codename1.impl.android.AndroidNativeUtil.getActivity().runOnUiThread(new Runnable() {
        //        public void run() {
                    android.view.View decorView=com.codename1.impl.android.AndroidNativeUtil.getActivity().getWindow().getDecorView();           
                    int uiOptions=android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|android.view.View.SYSTEM_UI_FLAG_FULLSCREEN;
                    decorView.setSystemUiVisibility(uiOptions);
        //        }
        //        });

            }

        public boolean isSupported() {
            return false;
        }

    }
 

В моем основном классе я вызываю функцию следующим образом:

 Button b=new Button("Masquer Navigation Bar");
        b.addActionListener(evt->{
            NavigationBar nBar=(NavigationBar)NativeLookup.create(NavigationBar.class);
            if(nBar==null) {
                throw new RuntimeException("Cette fonctionnalité n'est pas ENCORE supportée sur cette plateforme");
            }
            if(!nBar.isSupported() ){
                throw new RuntimeException("Cette fonctionnalité n'est pas supportée sur cette plateforme");
            }
            nBar.masquerNavigationBar();
        });
 

Во-первых, я попытался поместить код в собственный EDT. Это не работает. Не помещая его в собственный EDT, он тоже не работает. У меня нет ошибок, и он хорошо компилируется. Что я делаю не так? Спасибо!

Ответ №1:

Трудно сказать без отладки, и вы не включили код, в котором вы создали собственный интерфейс, но это выглядит как ошибка:

     public boolean isSupported() {
        return false;
    }
 

Он должен возвращать true .

Комментарии:

1. Привет, Шай. «Return true» решил проблему. Спасибо!!