在我的Android应用程序中,我根据android developer blog和其他地方的提示自定义ActionBar。我希望能够突出显示ActionBar上的特定菜单项,例如具有不同的背景颜色,因为它特别适用于当前可见的片段(实际上添加了它)。但是我没有发现任何可以做到这一点的迹象,也没有我自己设法做到这一点。可能吗?如果是这样的话?
答案 0 :(得分:13)
所以我现在开始使用这个技巧了。这里是片段代码
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart);
if (menuItemCreateCart == null) {
menuItemCreateCart = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create);
}
TextView tv = new TextView(getActivity());
tv.setText(R.string.Create);
tv.setTextColor(getResources().getColor(R.color.green));
tv.setBackgroundColor(getResources().getColor(R.color.lightBlue));
tv.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
createCart();
}
}
);
menuItemCreateCart.setActionView(tv);
主要问题是onclicklistener必须在您设置为操作视图的视图上设置,而不是设置为工作的菜单项。这样你就可以做任何你喜欢的事。
另请注意,您不能使用getActionView检索带有标题的原始设置视图,因为它将返回null。它似乎是一个替代视图,而不是默认菜单项的实际视图..