2013-06-21 66 views
4

我在我的應用程序中遇到ActionBar問題;在某些情況下,ActionBar似乎在通知/標題欄「下方」。它每次都是可重複的,我無法弄清楚它爲什麼會發生。我使用帶有Intents的ZXING應用程序來掃描條形碼並將它們返回給我的應用程序,並且在此過程中的某個時候發生問題。通知欄下的ActionBar /標題欄

我認爲這是最好的向你展示圖片的問題。

1:應用主屏幕,一切正常。

App home screen, no issues

2:使用菜單項來掃描條形碼。這如預期的那樣出現。

Scan a product...

3:掃描項目的產品頁面顯示正常。如果我點擊「取消」但是......

Product page, all still normal. Press cancel...

4:動作條已經通知/標題欄下消失了。

Home screen now shows the ActionBar under the notification/title bar

這樣的這個(我能找到)錯誤的唯一的其他一提的是在這個問題的GitHub的ActionBarSherlock(我使用的):https://github.com/JakeWharton/ActionBarSherlock/issues/602

我已經檢查過我就像傑克提到的那樣,在configChanges中不會做任何奇怪的事情。

在我的4.2.2設備上可以看到這個問題,不幸的是我無法在ICS前的設備上進行測試。

歡迎任何想法或建議!

+0

您是否使用自定義ROM?如果這是一個自定義的實現,它可能不適用於ABS。 –

+0

我正在使用其中一部手機(HTC One),但我的其他手機(HTC Desire S)有現貨,而且他們都有問題。 – Luke

+0

我也建議測試常規的ActionBar代碼(沒有支持庫)。您可以在此時排除支持庫和/或ABS。 –

回答

2

我猜它不會從zxing屏幕回來時重新恢復。在您的「最佳之前」活動中,嘗試重新設置全屏窗口標記,例如:

@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) { 
      } 
     } 
    } 
} 
+2

在可能受到影響的活動中嘗試過,問題仍然存在。雖然有趣的想法! – Luke

+0

嘗試設置全屏,然後把它拿走(我編輯了答案) – petey

+0

仍然沒有變化。 :( – Luke