我的 android 应用程序支持 2.2 及更高版本。我正在为操作栏使用 appcompat 支持库,所以它应该只在有不合适的东西时显示。我希望我的操作栏支持溢出按钮(三个垂直方 block ),该按钮在单击时会显示包含其他项目的菜单。
在我的菜单文件中,我设置了三个项目。但是在应用程序上我只看到其中两个,并且溢出按钮也没有显示。
activity_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sord.ids_connect="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:icon="@drawable/checkbox"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
<item
android:id="@+id/action_settings2"
android:icon="@drawable/checkbox_checked"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
<item
android:id="@+id/action_settings3"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings"
sord.ids_connect:showAsAction="ifRoom" />
</menu>
java文件
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
public class Activity_Menu extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_menu, menu);
//return true;
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
super.onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}
list
<activity
android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
android:name="sord.ids_connect.Activity_Menu"
android:screenOrientation="portrait"
android:label="@string/title_activity_menu" >
</activity>
最佳答案
一般引用
1 - 覆盖 onCreateOption 并展开菜单
注意
返回 true 或调用 super 都无所谓
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_menu, menu);
return super.onCreateOptionsMenu(menu);
}
2 - 将命名空间添加到 menu.xml 文件。
xmlns:**yourapp**="http://schemas.android.com/apk/res-auto"
3 - 将 showAsAction 设置为always 或 ifRoom
**yourapp**:showAsAction="ifRoom"
4 - 如果您使用的是 appcompat,请确保您的 Activity 扩展 ActionBarActivity ,您无需更改 ActionBar 的任何值即可在栏中看到您的 menuOption。
最后你会得到类似[记住为你的应用使用一个合适的命名空间]
main.xml
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_action_settings"
android:title="@string/action_settings"
yourapp:showAsAction="ifRoom" />
关于你的 Activity
@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 super.onCreateOptionsMenu(menu);
}
关于Android 支持操作栏不显示溢出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20713806/