我一直在尝试从一本书中实现一个小应用程序,其中包括向操作栏添加项目。发生的问题是项目被添加到溢出菜单的列表中(带有三个点的右上角图标)而不是主操作栏(它应该在的位置)。
这是menu_main文件 -
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context = ".MainActivity"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never"
/>
<item
android:id="@+id/action_create_order"
android:title="@string/action_create_order"
android:icon = "@drawable/create_order"
android:orderInCategory="1"
app:showAsAction="ifRoom"
/>
这是MainActivity代码 -
package com.newboston.bitsandpizzas;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
public class MainActivity extends Activity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.action_create_order:
Intent intent = new Intent(this,OrderActivity.class);
startActivity(intent);
return true;
case R.id.action_settings:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
我尝试将两者的showAsAction设置为“始终”,但问题仍然存在。
(模拟器是bluestacks)
答案 0 :(得分:1)
根据您的屏幕尺寸和操作栏标题,可能没有足够的空间显示甚至两个菜单选项。即使你把它设置为&#39; ifRoom&#39;如果没有空间,菜单项将显示在溢出菜单项中。
对于两者都建议超过&#39;总是&#39;您可以通过检查布局在更大屏幕尺寸中的显示方式以及更多可用的菜单项空间,缩短操作栏标题以腾出更多空间,或者以水平方向观察菜单项布局来查看是否问题仍然存在。
如果这不是问题,请发布截图,了解当您将这两个项目设置为&#34; ifRoom&#34;时,操作栏的显示方式以及如何创建和膨胀选项菜单的代码。
请注意,菜单项布局会因设备而异。因为屏幕尺寸较大的设备可以在主操作栏中显示更多菜单项。 希望这可以帮助。