设置随着Action Bar支持库溢出

时间:2013-12-14 15:28:28

标签: android android-actionbar android-support-library

我正在使用Support Library v3 appcompat开发一个操作栏。设置选项不会溢出。相反,我需要从我的手机上按菜单然后设置即将到来......

以下是代码: 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 个答案:

答案 0 :(得分:2)

Actionbar溢出按钮不会在设备上显示硬件菜单按钮,因为这是设计阻止的,

来自设计文档中的兼容性here

  

不显示带有传统导航硬件键的Android手机   屏幕底部的虚拟导航栏。相反,   菜单硬件密钥可以使用动作溢出。

你可以试试黑客,虽然强行显示溢出菜单,请看answer

答案 1 :(得分:1)

  

设置选项不会溢出。相反,我需要从我的手机中按菜单,然后设置即将到来

溢出。引用the documentation

  

操作溢出中隐藏了无法放入操作栏或不够重要的操作。用户可以通过按右侧的溢出按钮(或设备菜单按钮,如果可用)来显示其他操作的列表。