【问题标题】:Menu key not working in AppCompat菜单键在 AppCompat 中不起作用
【发布时间】:2014-12-03 17:54:04
【问题描述】:

我一直在将 Material 移植到一个开源应用程序中。我使用了 AppCompat v21 库。我按了菜单键,但什么也没得到。其他一切正常。

我做错了什么?稍后我会在通过手机发送此代码时附上代码。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/action_view_source" android:title="@string/action_view_source"  />
    <item android:id="@+id/action_view_translation" android:title="@string/action_view_translation" yourapp:showAsAction="never" />
    <item android:id="@+id/action_view_bugs" android:title="@string/action_view_bugs" yourapp:showAsAction="never"  />
</menu>

Java

 public class MainActivity extends ActionBarActivity
  …
 @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, menu);
    return true;
}

【问题讨论】:

    标签: android android-appcompat


    【解决方案1】:

    没关系,我想通了。似乎在新的 AppCompat 中禁用了菜单键。我实际上找到了修复它的方法,我想我会与您分享。

    public class MainActivity extends ActionBarActivity {
    private Toolbar toolbar;
    
    @Override
    public void onCreate(Bundle icicle){
    ...
    setContentView(R.layout.main);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    ...
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            toolbar = (Toolbar) findViewById(R.id.toolbar);
            if (toolbar.isOverflowMenuShowing()) {
                toolbar.dismissPopupMenus();
            } else {
                toolbar.showOverflowMenu();
            }
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多