在安卓系统中创建底部选项菜单

3

是否可以创建一个选项菜单,但将其放置在页面底部。我正在使用<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />进行开发。我知道默认情况下它位于顶部,但我认为它可以放到底部。我只是不知道如何做。

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;
}

非常感谢您的帮助。


顺便提一下,我尝试了android:showAsAction="ifRoom",但似乎没有起作用。 - user1175889
1
ifRoom 不是用来这个的,它意味着只有在 ActionBar 中有空间可用时才会显示您的菜单项。如果您想始终显示菜单项,请将其替换为 always - Yoann Hercouet
1个回答

8

由于您的目标sdk为17,您可以使用SplitBar,它是默认ActionBar上可用的选项:http://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 函数进行设置,具体信息可参见这里编辑:仅在窄屏幕上,菜单才会显示在底部,在更大的设备或横屏模式下,将显示默认的顶部操作栏。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接