Как скрыть нижнюю панель навигации системы Android в приложении React Native без изменения MainActivity?Может через AndroidManifest? - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу скрыть нижнюю панель навигации системы. Я использовал «response-native-navigation-bar-color», но это вызывает ошибку сборки, как ни странно, только при выпуске сборки.

Я думал, что смогу удалить этот пакет (act-native-navigation-bar-color) и навсегда скрыть панель навигации, изменив MainActivity, но MainActivity в React Native не наследует AppCompatActivity, чтобы в нем был метод "onCreate" в который я могу написать код (в соответствии с документацией андроид студии), чтобы скрыть.

Ниже приведена ошибка сборки: /Users/yashjaveri/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/f688ce916ebedb5188b6c1f4470868ef/res/values-v28/values-v28.xml:9:5-12:13: AAPT: ошибка: ресурс android: attr / dialogCornerR adius не найден.

/ Пользователи / yashjaveri / Документы / React / ReactNative_Projects / красться / node_modules / реагировать-нативный навигационно-бар цвета / Android / строить / промежуточные / RES / слит / выпуск / значение-V28 / ценности-v28.xml: 11: AAPT: ошибка: ресурс android: attr / dialogCornerRadius не найден.

/ Users / yashjaveri / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-28.0.0.aar / f688ce916ebedb5188b6c1f4470868ef / res / values ​​/ values.xml: 1304: 5-69: AAPT: ошибка : ресурс android: attr / fontVariationSettings не найден.

/ Users / yashjaveri / .gradle / caches / transforms-1 / files-1.1 / appcompat-v7-28.0.0.aar / f688ce916ebedb5188b6c1f4470868ef / res / values ​​/ values.xml: 1304: 5-69: AAPT: ошибка : ресурс android: attr / ttcIndex не найден.

ошибка: не удалось связать ссылки.

FAILURE: сборка не удалась, исключение.

  • Что пошло не так: Выполнение не удалось для задачи ': response-native-navigation-bar-color: verifyReleaseResources'

    com.android.ide.common.process.ProcessException: не удалось выполнить aapt

Пожалуйста, помогите мне, либо предоставив способ навсегда скрыть navbar в реагирующем родном языке, либо предложив любой другой пакет npm (), либо помогите мне решить ошибку сборки релиза, так как мое приложение имеет видеоэкран, который требует полноэкранного режима. .

Спасибо

Screenshot

1 Ответ

1 голос
/ 19 апреля 2019

Скрыть панель навигации

Вы можете скрыть панель навигации, используя флаг SYSTEM_UI_FLAG_HIDE_NAVIGATION. Этот фрагмент скрывает как панель навигации, так и строку состояния:

Отмечено следующее:

@Reactmethod
public void hidenavigationbar() {
View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
          | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
  • При таком подходе касание в любом месте экрана вызывает панель навигации (и строка состояния), чтобы появиться и остаться видимым. взаимодействие с пользователем приводит к удалению флагов.
  • Как только флаги будут удалены, ваше приложение должно сбросить их, если вы хочу снова спрятать бары. См. Ответы на изменения видимости пользовательского интерфейса для обсуждения того, как слушать изменения видимости пользовательского интерфейса, чтобы Ваше приложение может реагировать соответственно.
  • Где вы устанавливаете флаги пользовательского интерфейса, имеет значение. Если вы прячете систему бары в методе onCreate () вашей активности и пользователь нажимает Home, системные панели появятся снова. Когда пользователь снова открывает действие, onCreate () не будет вызван, поэтому системные панели останутся видимыми. Если вы хотите, чтобы изменения пользовательского интерфейса системы сохранялись, когда пользователь перемещается в и из вашей деятельности, установите флаги пользовательского интерфейса в onResume () или onWindowFocusChanged ().
  • Метод setSystemUiVisibility () действует только в том случае, если Звоните из видимой.
  • Отход от вида вызывает флаги, установленные с setSystemUiVisibility () для очистки.

эта ссылка о моем ответе

OR Используйте эту ссылку

import FullScreen from 'react-native-full-screen'
FullScreen.onFullScreen()
FullScreen.offFullScreen()

статья, на которую есть ссылка в письменном виде другой ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...