2016-05-30 93 views
-1

我是新来的android和我想创建一个溢出菜单。溢出菜单的3个点没有显示在ActionBar

ActionBar上的3个点未显示(即使在更改应用程序主题后)。在更改应用主题后,它会显示在屏幕“Android..CoordinatorLayout”的中心如何获得这3个点?

menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="always" /> 

    <item android:id="@+id/rtfm" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 
</menu> 
+0

请告诉我们您的菜单XML的代码 - 你应该使用'机器人:showAsAction =“从不”'让你的溢出。 – ishmaelMakitla

+1

我认为你的问题的答案在这里:[Android的ActionBar项目为三个点](http://stackoverflow.com/questions/27627659/android-actionbar-items-as-three-dots) – Nahue

+0

我已经添加了代码对于菜单XML –

回答

1

你应该需要这样的事情。

A menu.xml目录下res/menu目录下的项目布局。

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 
    ... 
</menu> 

然后在您的Activity中,您必须包含此方法。

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

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_settings: 
      // Do something 

      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
0

您可以使用这一招在活动的onCreate:

if (savedInstanceState == null) { 
    //Show dots: 
    try { 
     ViewConfiguration config = ViewConfiguration.get(this); 
     Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); 

     if (menuKeyField != null) { 
      menuKeyField.setAccessible(true); 
      menuKeyField.setBoolean(config, false); 
     } 
    } catch (Exception ex) { 
     // Ignore 
    } 

} else { 
    //isResumed = true; ............. do something..... 
}