我正在设置一个带有两个图标的actionBar(一个进入主要活动,另一个进入前一个)
问题在于我将这个用作菜单:
<item android:id="@+id/Main_App"
android:title="Main"
app:showAsAction="always|withText"
android:orderInCategory="1"
android:icon="@drawable/ic_home"/>
<item android:id="@+id/back_App"
android:title="Back"
app:showAsAction="always|withText"
android:orderInCategory="2"
android:icon="@drawable/ic_back"/>
使用它的代码:
@覆盖
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.Main_App) {
Intent getNewMessageAct = new Intent(this,UpLinksActivity.class);
startActivity(getNewMessageAct);
finish();
return true;
} else if (id == R.id.back_App){
Intent getNewMessageAct = new Intent(this,NewMessageActivity.class);
startActivity(getNewMessageAct);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
我总是使用相同的菜单,有时候图标适合ActionBar,有时不适合。我不明白为什么会这样。
它与尺寸无关,因为它有适合的空间。
任何了解它为何会发生的事情都将受到赞赏。
答案 0 :(得分:0)
实际上尝试只显示没有文字的图标。因为ActionBar为App Title分配了一些固定空间,即使它很小..所以在小型手机中它不能显示两个图标......甚至可以改变类别中的顺序设置相同的项目..
<item android:id="@+id/Main_App"
android:title="Main"
app:showAsAction="always"
android:orderInCategory="100"
android:icon="@drawable/ic_home"/>
<item android:id="@+id/back_App"
android:title="Back"
app:showAsAction="always"
android:orderInCategory="100"
android:icon="@drawable/ic_back"/>
答案 1 :(得分:0)
对于遇到同样问题的其他人,我找到了一个解决方案:
<item android:id="@+id/Main_App"
android:title="Main"
app:showAsAction="always|withText"
android:showAsAction="always|withText"
android:orderInCategory="1"
android:icon="@drawable/ic_home"
/>
<item android:id="@+id/back_App"
android:title="Back"
app:showAsAction="always|withText"
android:showAsAction="always|withText"
android:orderInCategory="2"
android:icon="@drawable/ic_back"/>
我添加了&#34; android:showAsAction =&#34;总是| withText&#34;它起作用了。我不确定它为什么会起作用,与支持库有关。无论如何,它会产生XML错误,但它会编译并运行。
答案 2 :(得分:0)
选择的答案对我没有用。
在我的情况下,当我第一次进入活动时,菜单项不会显示在任何片段中。如果我旋转设备一切正常。
[我没有声誉添加评论!]