2013-06-05 89 views
3

是否有可能在選項菜單上創建,但在頁面的底部。我正在與<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />合作。我知道默認情況下它位於頂部,但我認爲它可以被置於底部。我只是不知道如何。 這裏是我的代碼創建選項菜單android在Android上的頁面底部

option_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/scan" 
      android:icon="@android:drawable/ic_menu_search" 
      android:title="@string/connect"/> 
    <item android:id="@+id/discoverable" 
      android:icon="@android:drawable/ic_menu_mylocation" 
      android:title="@string/discoverable"/> 
</menu> 

main.java

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.option_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.scan: 
     // Launch the DeviceListActivity to see devices and do scan 
     Intent serverIntent = new Intent(this, DeviceListActivity.class); 
     startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE); 
     return true; 

    case R.id.discoverable: 
     // Ensure this device is discoverable by others 
     ensureDiscoverable(); 
     return true; 
    } 

    return false; 
} 

任何幫助將是巨大的。

+0

順便說一句,我試過這個'android:showAsAction =「ifRoom」'但它似乎沒有工作 – user1175889

+1

'ifRoom'並不意味着這一點,這意味着你的菜單項將只顯示,如果有空間可以在'ActionBar'中找到。如果你想一直顯示一個菜單項,用'always'替換它。 –

回答

8

看到您的目標是sdk 17,您可以使用SplitBar,它是一個可用選項,默認爲ActionBarhttp://developer.android.com/guide/topics/ui/actionbar.html#SplitBar

你需要聲明它在每一個需要的地方清單檔案中的活動,例如:

<activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" 
     android:uiOptions="splitActionBarWhenNarrow" /> 

然後在你的onCreate功能,還可以調用自定義的佈局,如果你仍然需要顯示設備在屏幕的頂部附加按鈕:

ActionBar actionBar = getActionBar(); 
    actionBar.setCustomView(R.layout.action_bar_custom); //load menu 
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_CUSTOM); 
    actionBar.setDisplayShowTitleEnabled(false); 
    actionBar.show(); 

默認情況下,該圖標上方正常顯示將在底部顯示,但你仍然可以使用自定義佈局添加自定義動作按鈕,如一個在這個例子。 setDisplayOptions功能描述爲here

編輯:只有在較窄的屏幕,較大的設備或橫向模式下,菜單纔會顯示在底部,將顯示頂部的默認操作欄。