我正在开发以下屏幕:
在工具栏上,您可以看到一个tick。我想显示文本“Create”以及此。我使用以下代码:
menu_new_group
<?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/createGroup"
android:icon="@drawable/single_tick"
android:orderInCategory="100"
android:showAsAction="always|withText"
android:title="Create"
app:showAsAction="always|withText" />
</menu>
使用选项菜单的代码
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.clear();
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu_new_group, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.createGroup:
createNewGroup();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
请帮我在工具栏中添加文字和图标作为操作。
答案 0 :(得分:2)
仅供参考,无法显示图标以及动作菜单的文本 同时在一个小间距的动作栏中。所以我们需要利用
actionLayout
功能可显示图标+文字。
检查以下示例代码以了解实施情况。
菜单XML
<menu
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto">
<item
android:id = "@+id/menu_profile"
android:icon = "@android:drawable/ic_menu_save"
android:title = "Save"
app:actionLayout = "@layout/action_menu"
app:showAsAction = "always"/>
</menu>
操作布局 - 就像只有Textview的普通布局文件一样。 action_menu.xml 强>
<TextView
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/tab_selector"
android:drawableRight = "@android:drawable/ic_menu_save"
android:gravity = "center"
android:text = "Save"
android:textColor = "@android:color/white"/>
背景选择器 - 用于单击时突出显示。 tab_selector.xml 强>
<selector xmlns:android = "http://schemas.android.com/apk/res/android">
<item
android:drawable = "#eeeeee"
android:state_pressed = "true"/>
<item
android:drawable = "@android:color/transparent"/>
</selector>
在“代码”中,在onCreateOptionsMenu中设置单击侦听器,如下所示。
MenuItem item = menu.findItem(R.id.menu_profile);
item.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(Activity.this, "Save Clicked..", Toast.LENGTH_SHORT).show();
}
});
祝福......