2016-11-12 1 views
3

У меня есть заставка и форма входа в систему, которые необходимо отображать на весь экран без каких-либо инструментов/меню/заголовков. Форма отображается с баром в верхней части экрана, что я считают, что это TitleArea.Удаление TitleArea из определенной формы с кодовым именем

Сценарий идентичен тому, который описан на https://groups.google.com/forum/#!topic/codenameone-discussions/2sgVfNYU9rk

В этой дискуссии, Шай рекомендует решение установки прозрачности TitleArea UIID 0. Как я хочу только название области, чтобы быть невидимым на этих конкретных формах, я создал новый UIID TitleAreaTransparent с фоновой прозрачностью 0 и инстанцирована форма SplashScreen следующим образом:

SplashScreen f = new SplashScreen(theme); 
    Container tArea = f.getTitleArea(); 
    tArea.setUIID("TitleAreaTransparent"); 
    f.show(); 

Это делает бар исчезает, однако у меня есть две проблем.

1) Несмотря на то, что TitleArea является прозрачным, он по-прежнему занимает некоторую недвижимость на форме. В этом конкретном случае это не имеет значения, но будут и другие ситуации, когда мне может понадобиться использовать весь экран, и я хотел бы просто полностью исключить этот компонент. Каков правильный способ сделать это?

2) Javadoc говорит, что getTitleArea() является устаревшим, но что Есть несколько вариантов, таких как поведение команды (через дисплей или тематические константы) я сделал некоторые копали и не смог найти ничего, что проливает свет на делать то, что мне нужно. Каков правильный способ изменения UIID компонента TitleArea?

ответ

1

При таком подходе getTitleArea() по-прежнему необходим. Если вы не устанавливаете заголовок, область заголовка должна быть 0, но строка состояния по-прежнему занимает пробел, так как она подталкивает пользовательский интерфейс, поэтому он не будет разваливаться под панелью состояния iOS.

Вы можете отключить что стилизации StatusBar UIID глобально (не рекомендуется) или через что-то подобное в вашем Form подкласса:

@Override 
protected Component createStatusBar() { 
    Component c = super.createStatusBar(); 
    c.getUnselectedStyle().setPadding(0, 0, 0, 0); 
    return c; 
} 
+0

Я не ставил заголовок (название = «»), но TitleArea был все еще присутствует и видимо. Когда я использую предоставленный здесь фрагмент, он остается видимым, но составляет примерно половину высоты, как видно на этом изображении: http://imgur.com/a/79aP3 – SolStack

+0

Вы все еще использовали 'getTitleArea(). SetUIID (" Контейнер ")'? –

+0

Я взял 'getTitleArea(). SetUIID (« Контейнер ») и вышел из него с кодом, который вы указали выше. Вы говорили, что я должен использовать их вместе? – SolStack

 Смежные вопросы

  • Нет связанных вопросов^_^