Russian Qt Forum

Qt => Qt Embedded => Тема начата: Silver_swift от Сентябрь 24, 2014, 13:56



Название: Убрать панель навигации в андроид приложении
Отправлено: Silver_swift от Сентябрь 24, 2014, 13:56
Доброго времени суток!

Написал Android приложение с использованием QtQuick. Хотел бы при его запуске скрывать панель навигации (кнопочки внизу). Может кто-нибудь помочь?:)


Название: Re: Убрать панель навигации в андроид приложении
Отправлено: vregess от Сентябрь 24, 2014, 14:23
Дергай Android java API при помощи QAndroidJniObject.
https://developer.android.com/training/system-ui/navigation.html (https://developer.android.com/training/system-ui/navigation.html)

Если приложение постоянно будет на весь экран, то можешь посмотреть параметры в манифесте.


Название: Re: Убрать панель навигации в андроид приложении
Отправлено: Silver_swift от Сентябрь 25, 2014, 08:44
В манифесте я нашел только возможность скрыть верхнюю панель. С нижней панелью чуть труднее: мне нужно вызвать метод getWindow от какого-то наследника Activity. Но у меня в коде-то нет никаких активити... Как быть?



Название: Re: Убрать панель навигации в андроид приложении
Отправлено: vregess от Сентябрь 25, 2014, 11:10
Почитай документацию по Qt AndroidExtras и посмотри пример Qt Notifier (http://qt-project.org/doc/qt-5/qtandroidextras-notification-example.html).

Можно попробовать все сделать через JNI (сам не делал) из c++: взять QtAndroid::androidActivity() и вызывать его методы.


Название: Re: Убрать панель навигации в андроид приложении
Отправлено: vulko от Октябрь 28, 2014, 12:50
Если можно через JNI, то:

Код:
    WindowManager.LayoutParams attrs = mActivity.getWindow().getAttributes();
    attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    mActivity.getWindow().setAttributes(attrs);


Либо до setContentView():
Код:
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);   


П.С. на старых версиях это единственный 100% работающий способ, но скрывает также и панель уведомлений.