我的应用程序中的ActionBar存在问题;在某些情况下,ActionBar似乎位于通知/标题栏的“下方”.它每次都可以重现,我无法弄清楚它为什么会发生.我使用带有Intents的ZXING应用程序扫描条形码并将它们返回到我的应用程序,并且在此过程中的某个时刻出现问题.
我认为最好向你展示图片的问题.
1:应用程序主屏幕,一切正常.
2:使用菜单项扫描条形码.这似乎符合预期.
3:扫描项目的产品页面显示正常.如果我点击“取消”但是…
4:ActionBar现已进入通知/标题栏.
另一个提到这样的错误(我可以找到)是在ActionBarSherlock的GitHub问题中(我正在使用):https://github.com/JakeWharton/ActionBarSherlock/issues/602
我已经检查过,并且我没有像jake提到的那样对configChanges做任何奇怪的事情.
这个问题出现在我的4.2.2设备上,遗憾的是我无法在预ICS设备上进行测试.
欢迎任何想法或建议!
解决方法:
我猜你从zxing屏幕回来时没有重置.在您的“Best Before”活动中,尝试重置全屏的窗口标志,例如:
@Override
protected void onResume() {
super.onResume();
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
setSystemUiVisibility(this, View.SYSTEM_UI_FLAG_VISIBLE /* SYSTEM_UI_FLAG_VISIBLE=0 */);
}
private static void setSystemUiVisibility(final Activity activity, final int newValue){
if (activity.getWindow() != null){
View v = activity.getWindow().getDecorView();
if (v != null) {
try {
Method methodSetSystemUIVisibility = v.getClass().getMethod("setSystemUiVisibility", int.class);
methodSetSystemUIVisibility.invoke(v, newValue);
} catch (Exception noop) {
}
}
}
}