如何强制在溢出图标下显示菜单项。我从api 8级及以上提供应用程序支持。现在它显示为actionview。 我的menuLayout如下。
//main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_menu_setting"
android:title="@string/menuItemSetting"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/action_signout"
android:title="@string/menuItemLogout"
app:showAsAction="ifRoom"/>
</menu>
在Java类
中 @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
我尝试了showAsAction
的其他选项,但都没有奏效。请建议我如何在overflow
图标下方显示以上两个菜单itme(当我点击这两个菜单时,它们将作为动作列表出现。)
答案 0 :(得分:1)
你能发贴java代码吗?您的活动中是否包含以下代码?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.menu, menu);;
return super.onCreateOptionsMenu(menu);
}
编辑: 我总是使用这样的代码(当我点击action_settings它会显示动作列表包含设置和栏,我想只需要替换android:title =&#34; @ string / action_settings&#34;用android:icon)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action_settings">
<menu>
<item
android:enabled="true"
android:visible="true"
android:title="setting"
android:id="@+id/setting">
</item>
<item
android:enabled="true"
android:visible="true"
android:title="B"
android:id="@+id/bar">
</item>
</menu>
</item>
<item
android:id="@+id/action_settings1"
android:orderInCategory="100"
android:showAsAction="always"
android:title="@string/action_settings"/>
</menu>
希望有所帮助
答案 1 :(得分:1)
自定义操作栏的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@drawable/header"
android:orientation="vertical" >
<TextView
android:id="@+id/tvActionBarTitle"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:gravity="center"
android:textColor="#FFFFFF"
android:textSize="30sp" />
<Button.../>
<!-- your code for button -->
</LinearLayout>
您可以在onCreate中调用以下函数并在此函数中定义按钮,因为我已经定义了appName文本视图及其OnClick事件
private void createCutomActionBarTitle()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
{
this.getActionBar().setHomeButtonEnabled(true);
}
this.getActionBar().setDisplayShowCustomEnabled(true);
this.getActionBar().setDisplayShowTitleEnabled(false);
this.getActionBar().setBackgroundDrawable(drawable);
this.getActionBar().setIcon(logo);
LayoutInflater inflator = LayoutInflater.from(this);
View v = inflator.inflate(R.layout.custom_action_bar, null);
((TextView) v.findViewById(R.id.tvActionBarTitle)).setText(Global.ACTIVITY_NAME);
this.getActionBar().setCustomView(v);
}
希望这对你有用:) 但点击设备的物理按钮不会触发你需要查找的按钮,因为我对它一无所知