Использование android:fitsSystemWindows="true/false" Изменение высоты панели навигации и перемещение панели навигации в белый цвет

Я работаю над UnityPlayerActivity, в котором камера рендерится на весь экран, поверх которого есть панель инструментов и панель навигации. Поэтому я сталкиваюсь со следующими проблемами, как

Случай A: Используется android:fitsSystemWindows="false" Показывает панель навигации, но не так, как ожидалось, поскольку высота панели не отображается в полноэкранном режиме. Но панель навигации Android прозрачна, камера занимает полный экран, как и ожидалось.

Случай B: Используется android:fitsSystemWindows="true" Показывает панель навигации, как и ожидалось, а высота панели отображается в полноэкранном режиме. Но панель навигации Android не прозрачна, поэтому камера не занимает весь экран, как ожидалось.

СЛУЧАЙ А ДЕЛО Б Это мой файл макета

1 ответ

Не обязательно, чтобы вы были связаны с активностью Unityplayer или mainActivity.

Вы можете сделать любое действие статическим и вызвать функцию или пользовательский интерфейс, присутствующий в этих действиях, из C# unity.

Правильная методология - создать статическую активность в вашем основном проекте Android и назвать ее текущей активностью. После этого в вашем методе oncreate вы устанавливаете для currentActivity следующий код, демонстрирующий, что:

public class MainActivity extends UnityPlayerActivity {

 public static MainActivity currentActivity;

 @Override

     public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         currentActivity=this;

Кроме того: из своего кода Unity вы можете использовать C# для вызова метода Android из MainActivity с помощью следующего кода:

AndroidJavaClass jc = new AndroidJavaClass("yourpackagename.youractivity");

 AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

 jo.Call("toggleMenu");

ИЛИ ЖЕ

Вы можете конвертировать UnityPlayerActivity во Фрагмент, ссылка, указанная ниже, поможет вам в этом

Как открыть фрагмент Android в новом процессе?

Другие вопросы по тегам