2014-05-18 38 views
3

我正在使用Android Studio(實際上在Mac上),僅使用真實設備Android工作室 - 只是不能獲得行動酒吧/溢出工作?

這僅是4.1+。從新鮮創建的所有項目。

CHECK - 我沒有加載支持和appcompat,盡我所能瞭解Gradle。 [A]

enter image description here

CHECK - onCreateOptionsMenu等,看起來很不錯...

enter image description here

CHECK - XML是好去。 (我完全理解showAsAction選項,並嘗試所有。)[B]關於使用文本或圖標,我嘗試了所有排列。

enter image description here

所以會發生什麼?

當我在設備上運行它(10+測試)。它只是顯示儘可能多的動作欄項目,可以適應(比如5個左右)。旋轉等完美運作。

但它只是不會顯示溢出圖標! WTF?它不會在任何地方顯示缺失的三個或四個項目。

我嘗試了「空白活動」和「全屏活動」。無論我做什麼,它都不會顯示@#$ @溢出。

這幾乎就像圖標只是在構建或東西不可用?

任何Android的朋友都可以通過這個問題嗎?這是一個真正的「跆拳道」時刻。提前致謝。

我的解決方法... https://stackoverflow.com/a/22855136/294884這很好,但是你的Android人會嘲笑我這樣做。

[A]:(請注意,我有兩個的build.gradle文件;我做到了在內側一個內部應用程序/不會對外層一個工作。)

[B]: (注意,一個常見的問題似乎是人們無法區分'always'和'ifRoom'。TBC根本不是我的問題:我的問題是@ $ @#溢出根本不會出現! !)


BTW任何人新到Android ...

https://stackoverflow.com/a/16046189/294884

該擴展的討論可能非常有用。

+1

您是否僅使用三星設備(或其他具有「菜單」硬件按鈕的設備)? – Budius

+0

嗨Budius ..只是要清楚,它也不會使物理菜單按鈕的工作。我將三重檢查沒有物理菜單按鈕的設備,並回復給您。 – Fattie

+1

這將是我最好的客人。帶有硬件按鈕的設備不顯示3點菜單。順便說一下:如果該項目是4。1+你不需要既不支持-v4也不需要appcompat-v7 – Budius

回答

6

這將是我最好的客人。帶有硬件按鈕的設備不顯示3點菜單。

另外,如果項目是4.1+,則不需要support-v4和appcompat-v7。這些可能會導致一些衝突。

鏈接到谷歌的解釋上的按鈕在不同的設備: http://developer.android.com/design/patterns/compatibility.html

關於使用的build.gradle文件或對話框,那麼,也許是的,但我已經習慣了到gradle這個文件,甚至從來沒有看在對話中,但我只是老派。


結果!

enter image description here

實測值髒哈克迫使溢出圖標是在其上具有硬件菜單按鈕設備可見。

private void getOverflowMenu() { 

    try { 
     ViewConfiguration config = ViewConfiguration.get(this); 
     Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); 
     if(menuKeyField != null) { 
      menuKeyField.setAccessible(true); 
      menuKeyField.setBoolean(config, false); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

來源:http://www.tagwith.com/question_264107_overflow-menu-not-showed-at-action-bar

+0

令人驚歎的當天Budius心靈通話,謝謝。它看起來像(在Mac-Studio上)(0.5.2,5/2014)如果項目只是4.1+,看起來如果你添加這兩個庫,那麼奇怪的溢出根本不起作用。 (意思是物理/圖標都不起作用,它只是表明有多少人可以適應 - 並放棄。)無論如何,我可能已經搞砸了別的東西;但希望它可以幫助某人。順便說一句,這張照片左側的灰色污跡是一部HTC手機(HTC手機,看起來很棒的手機,但可以買一些帶燈泡的LED) – Fattie

8

按下Android Studio左上角的「File」,選擇「Project Structure ...」。一個對話框將在左邊打開一個模塊列表。

選擇您的項目模塊,轉到選項卡「依賴項」,按下右邊的綠色「+」,在下一個對話框中選擇「庫依賴項」,您將能夠添加所需的庫。

如果「Support v4」和「AppCompat」不可用,您應該首先通過Android SDK Manager安裝「Android支持庫」和「Google Repository」。

enter image description here

+0

絕對**令人驚歎的提示**,非常感謝。然而,不幸的是,我的項目似乎已**有兩個庫在那裏:/ – Fattie

+1

最後你的Activity必須擴展android.support.v7.ActionBarActivity而不是android.app.Activity,而不是getActionBar()getSupportActionBar()必須是用過的。 –

+0

我相信,如果你不使用一個片段,你可以擴展「活動」.. ..是嗎?這就是它似乎在這裏建議的內容:http://developer.android.com/guide/topics/ui/actionbar.html BTW就是你的理解,就像Budius說的那樣,如果設備**確實有一個物理的KEYCODE_MENU按鈕,那麼android **將只使用**那個按鈕和**不顯示頂部的溢出圖標? – Fattie

0

我有類似的問題,顯示操作欄圖標開始使用Android Studio時..

奇怪的是,當我看着在設計屏幕布局它沒有表現出圖標正確,但是當我試圖在實際設備或仿真器上運行應用程序時,它顯示了3個點。

我知道,即使在具有硬件設置按鈕的設備上,我仍然可以看到顯示操作欄圖標而不是3點的應用程序。

最後,幫助的唯一的事情就是要做到這一點:// 編譯「com.android.support:appcompat-v7:21.0.0」

我的評論在固定的問題gradle這個這個庫的依賴。

0

我有這樣的東西,當我將我的項目移動到android studio時,如果在操作欄上顯示所有操作欄項目,它們僅在按下硬件按鈕菜單時顯示爲文本,並且在聯機時運行,三個點出現在操作欄的角落!

我嘗試了這個頁面上的建議,但沒有成功顯示操作欄上的項目!