在我的 Android 应用程序中,我正在按照 android developer blog 中的提示自定义 ActionBar。和其他地方。我希望能够突出显示 ActionBar 上的特定菜单项,例如具有不同的背景颜色,因为它特别适用于当前可见的 fragment (实际上添加了它)。但是,我还没有发现任何迹象表明可以做到这一点,我自己也没有设法做到这一点。可能吗?如果是怎么办?
最佳答案
所以我现在用了一些小技巧让它开始工作。下面是 fragment 代码
@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 必须在您设置为操作 View 的 View 上设置,而不是菜单项才能使其工作。这样你就可以随心所欲了。
另请注意,您不能使用 getActionView 来检索带有标题的最初设置的 View ,因为它会返回 null。它似乎比默认菜单项的实际 View 更像是一种替代 View 。
关于android - ActionBar 上特定菜单项的不同外观/样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598015/