我正在尝试新的Android 4.4半透明导航栏,并希望使用FLAG_TRANSLUCENT_NAVIGATION
标志将导航栏设置为半透明.我只希望导航栏(背面,主页按钮等)是半透明的 - 我希望屏幕顶部的状态栏显示为正常而不是半透明.
我用来实现这个目的的代码是:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是Android现在认为Activity是全屏的并且将布局放在导航栏后面(这是正确的),不幸的是它也将布局放在状态栏后面(一个问题).
一个hacky修复此问题的方法是将填充应用于布局父视图的顶部,但是我需要确定状态栏的高度来执行此操作.
任何人都可以建议我如何获得状态栏高度,它不像我想象的那样微不足道,或者建议一个正确的解决方案.
谢谢
有没有办法将NativeActivity的内容设置为用Java创建的组件(例如FrameLayout,ImageView等)?我需要使用NativeActivity(用于在Xperia Play上获取触摸板输入),但我还需要能够查看在Java代码中创建的组件.
我已经尝试重写onCreate命令并在那里调用setContentView,但是虽然这不会引发任何错误,但它也没有做任何事情(显然是因为内容视图已经由本机代码设置).是否存在某种窗口ID或者我可以传递给本机代码以告诉它内容视图应该是什么,或者可以在XML中以某种方式设置它以将NativeActivity的内容视图设置为我可以修改的组件来自Java?
如果您需要更多信息,请与我们联系.