android - ActionBar 上特定菜单项的不同外观/样式

标签 android android-actionbar

在我的 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/

相关文章:

android - 仅显示操作栏的下半部分(并且在状态栏后面)

android - 使用 Theme.Light 在 ListFragment 中的白色背景上显示白色文本

用于 xml 小部件的 Android 编程设置属性

java - 动画后运行动画,android studio

android - 在 ffmpeg-android 中执行 build.sh 时出错

Android Picasso 克隆但无法运行示例项目,未找到 gradle 文件

android - ActionBar 选项卡背景与 xml

java - 极其奇怪的类(class)困惑

android - 无法更改 actionBar 分隔线的颜色

android - Android L 联系人应用程序如何折叠其工具栏?