问题标签 [android-statusbar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android获取状态栏高度给出java.lang.ExceptionInInitializerError
附加信息(下面的原始问题)
在评论部分遵循@ρяσѕρєяK 建议后,我在另一个文件 ( SizeNotifierRelativeLayout.java
) 上遇到相同的错误,错误发生在第 44 行,即super.onLayout(changed, l, t, r, b);
. 该文件和logcat的代码如下:
SizeNotifierRelativeLayout.java
日志猫
原始问题->我有一个状态栏获取高度功能,它给了我一个
致命异常:主要 java.lang.ExceptionInInitializerError
当MyActivity
调用
函数对应错误:
在 com.app.name.AndroidUtilities.(AndroidUtilities.java:31)
是
由于我对 Android 和 Java 比较陌生,因此我会很感激关于我所缺少的内容的指针。谢谢!
我的活动.java
应用程序.java
AndroidUtilities.java
日志猫
android - 沉浸式模式 - 仅在一段时间后隐藏状态栏 + 重新隐藏状态栏,无需用户交互
我有一个带有 2 个工具栏的活动,一个在顶部,一个在底部。我使用反转模式,现在效果很好,它允许用户向下拖动状态栏......
问题是,状态栏被拉下来之后就再也隐藏不起来了……
我在这里找到了一些解决方案,但我无法让它工作。状态栏要么显示在我的视图上,要么如果我打开溢出菜单就会混乱,或者它不会再次隐藏......
这是我目前使用的:
我想要的是
- 始终全屏,直到用户向下拖动状态栏
- 例如 3 秒后状态栏应该再次隐藏,如果它没有打开
- 关闭状态栏后应该再次隐藏
- 在工具栏中打开我的溢出菜单时,状态栏不应该出现
java - 自定义 android 布局给出 java.lang.NullPointerException
我在 android 编程方面相对较新,在检测代码中出现以下错误的原因时遇到了一些困难:
10-18 18:15:45.083 31605-31605/? W / System.err?在 com.app.name.widgets.SizeNotifierRelativeLayout.onLayout(SizeNotifierRelativeLayout.java:43) 10-18 18:15:45.092 31605-31605/? E/Android 运行时?致命异常:主要 java.lang.NullPointerException
我正在使用com.app.name.widgets.SizeNotifierRelativeLayout
由我的 xml 文件调用的自定义布局。错误发生在第 43 行,其中包含super.onLayout(changed, l, t, r, b);
以下函数中的代码:
根据我的研究,我发现NullPointerException错误是由于在未创建对象的情况下声明了变量而发生的;但是由于我是 java 新手,所以我很难确定错误发生在哪里。请指出我正确的方向,我将非常感激。下面是我的活动、布局和 SizeNotifierRelativeLayout 文件以及 logcat。提前致谢。
活动.java
活动视图.xml
SizeNotifierRelativeLayout.java
日志猫
10-18 18:51:12.154 712-712/? W / System.err?在 com.app.name.widgets.SizeNotifierRelativeLayout.onLayout(SizeNotifierRelativeLayout.java:43) 10-18 18:51:12.164 712-712/?E/Android 运行时?致命异常:在 android.widget.ListView.fillDown(ListView. java:678) 在 android.widget.ListView.fillFromTop(ListView.java:739) 在 android.widget.ListView.layoutChildren(ListView.java:1664) 在 android.widget.AbsListView.onLayout(AbsListView.java:2050) 在android.view.View.layout(View.java:14243) 在 android.view.ViewGroup.layout(ViewGroup. 800) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5370) 在 java. lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 10-18 18:51:12.169 549-1386/? 带活动管理器?强制完成活动 com.app.name/.Activity 194) 在 android.app.ActivityThread.main(ActivityThread.java:5370) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:525) 在 com .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 在 dalvik.system.NativeStart.main(Native Method) 10-18 18:51:12.169 549-1386/? 带活动管理器?强制完成活动 com.app.name/.Activity 194) 在 android.app.ActivityThread.main(ActivityThread.java:5370) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:525) 在 com .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 10-18 18:51:12.169 549-1386/? 带活动管理器?强制完成活动 com.app.name/.Activity ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 10-18 18:51: 12.169 549-1386/? 带活动管理器?强制完成活动 com.app.name/.Activity ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 10-18 18:51: 12.169 549-1386/? 带活动管理器?强制完成活动 com.app.name/.Activity
android - 状态栏透明度不起作用
我正在尝试使用以下代码在我的应用程序中使状态栏透明:
但它不起作用。状态栏只是改变了颜色,变成了灰色,不透明。我的错误在哪里?如何使状态栏透明?
android - 我可以只为状态栏设置 FLAG_LAYOUT_NO_LIMITS 吗?
我需要制作透明的状态栏。我正在使用getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
它,它是我想要的状态栏。但它也影响导航栏:它变得透明并且getWindow().setNavigationBarColor(Color.BLACK)
什么也不做。
有没有办法只制作透明状态栏而不是导航栏?
android - Android Draw 在状态栏后面但不在导航栏后面
我正在研究一种使状态栏完全透明而不是半透明并且导航栏保持不变的方式。
我能得到的最接近的是使用旗帜
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
但这也吸引了导航栏。
背景是什么让这变得棘手,它是一个微妙的渐变,当我将状态栏颜色设置为渐变的开始时,它看起来几乎正确,但在屏幕顶部有一条微妙的线条。
有没有一种让活动适合窗口的好方法,只在顶部,但如果底部有导航栏,不要管它?
android - 识别发布/删除的通知何时在组中
我正在尝试使用NotificationListenerService检查 StatusBarNotifications(显示在 StatusBar 中)是否是组固有的(例如邮件或消息)。我正在使用 SDK >= 21。
使用众所周知的应用程序,如 fb、whatsapp 或 gmail,我看到了用于标记分组消息的不同规则(组和关键属性 - StatusBarNotification - 为此目的不太容易管理)。
如何识别发布/删除的通知何时在组中?哪个是组头?
android - Android 隐藏操作栏、状态栏和导航控件
我正在尝试制作一个在横向上完全全屏的活动,并在纵向上显示状态栏和导航按钮。我必须能够以编程方式执行此操作。
这就是我尝试使应用程序全屏显示的方式。
问题如下:
- 在某些设备上,我在屏幕顶部有一个空白部分,它等于状态栏的高度,即使状态栏没有显示
- 在其他设备上,活动填满了整个屏幕,但是当我单击任何内容时,会出现状态栏和导航栏,它们会调整布局大小,看起来很丑
我想要达到的目标:
活动应该以横向填充整个屏幕,位于状态栏和导航栏的后面(如果它们出现)
当用户点击屏幕时,他/她应该与屏幕进行交互。相反,第一次单击会显示状态和导航栏,并且只有在此之后才能进行交互
状态栏应该只在用户从顶部拖动时出现