使用android:fitsSystemWindows =“true / false”导航抽屉高度更改和导航栏变为白色

时间:2017-03-20 10:33:21

标签: android navigation-drawer android-immersive

我正在开发 UnityPlayerActivity ,其中相机在完整的屏幕上呈现,其中包含我的工具栏和导航抽屉。所以我面临以下问题

案例A:使用android:fitsSystemWindows =“false” 显示导航抽屉但不是预期的,因为抽屉的高度未显示全屏。 但是android导航栏是透明的,摄像头是以完整的屏幕为例 预期

案例B:使用android:fitsSystemWindows =“true” 按预期显示导航抽屉,抽屉高度显示全屏。 但是android导航栏并不透明,因此摄像机没有按预期完成整个屏幕。

CASE A CASE B This is my layout file

1 个答案:

答案 0 :(得分:0)

您不必与Unityplayer活动或mainActivity绑定。

您可以将任何活动设为静态,并从c#unity中调用这些活动中存在的函数或UI。

正确的方法是在主Android项目中创建静态Activity并将其命名为currentActivity。在你的oncreate方法之后,你将currentActivity设置为以下代码:

public class MainActivity extends UnityPlayerActivity {

 public static MainActivity currentActivity;

 @Override

     public void onCreate(Bundle savedInstanceState) {

         super.onCreate(savedInstanceState);

         currentActivity=this;

此外:您可以使用以下代码从Unity代码中使用C#从MainActivity调用Android方法:

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

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

 jo.Call("toggleMenu");

您可以将UnityPlayerActivity转换为Fragment,下面提到的链接可以帮助您实现相同的

How can I open an Android Fragment in a new process?