2013-12-14 37 views
1

我正在開發一個支持庫v3 appcompat的操作欄。設置選項不會溢出。而是我需要從我的移動,然後設置按菜單來了....設置即將通過Action Bar支持庫溢出

下面是代碼: main_activity_actions.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:myapp="http://schemas.android.com/apk/res-auto"> 
    <!-- Search, should appear as action button --> 
    <item android:id="@+id/action_search" 
      android:icon="@drawable/ic_action_search" 
      android:title="@string/action_search" 
      android:showAsAction="ifRoom" 
      myapp:showAsAction="ifRoom" /> 
    <!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 
</menu> 

配置:

<uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="19" /> 

MainActivity.java

import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Toast; 

public class MainActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_activity_actions, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle presses on the action bar items 
     switch (item.getItemId()) { 
      case R.id.action_search: 
       Toast.makeText(this, "Search Clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      case R.id.action_settings: 
       Toast.makeText(this, "Settings Clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

} 

任何想法,爲什麼這是這樣的行爲?

回答

2

Actionbar溢出按鈕將無法在設備上顯示有硬件菜單按鈕,因爲這是由設計防止,

從設計文檔兼容性here

Android手機與傳統導航硬件鍵不會在屏幕底部顯示虛擬導航欄 。相反, 操作溢出可從菜單硬件密鑰中獲得。

你可以嘗試一個黑客雖然強行顯示溢出菜單,請參閱本answer

+0

感謝@twntee。現在,我很清楚...... –

+0

不用客氣,我開始時也經歷過同樣的事情。 :) –

1

設置選項不會溢出。而是我需要從我的移動,然後設置按菜單來

溢出。引用the documentation

無法放入操作欄或不夠重要的操作隱藏在操作溢出中。用戶可以通過按右側的溢出按鈕(或設備菜單按鈕,如果可用)來顯示其他操作的列表。