当某些条件 x 为真时,我无法从 Fragment 内部更改 单个 MenuItem(不在溢出菜单中,没有图标,只有文本)的文本颜色。我需要能够设置单个项目的样式并在运行时更改它,或者以编程方式更改它的颜色。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_fragment_account_edit, menu);
((MultiPanelActivity) getActivity()).setToolbarBackButtonVisibility(!Globals.isTablet());
if (mightBeChanges) {
//TODO implement active state with {android.R.attr.textColorSecondary}
} else {
//TODO implement inactive state with {R.attr.colorContrastDark}
}
}
如果有人能提供一种方法,我会很高兴,这样我就可以开始工作了。 提前致谢!
最佳答案
首先,我必须按照 Geethakrishna Juluri 建议的方式更改 onPrepareOptionsMenu, 但我还必须添加一行,将 menuItems 标题放入 TextView。
@Override
public boolean onPrepareOptionsMenu(final Menu aMenu) {
final MenuItem menuItem = this.menu.findItem(R.id.user_id_label);
final TextView textView = (TextView) menuItem.getActionView();
textView.setTextColor(SOME_COLOR);
textView.setText(menuItem.getTitle);
return super.onPrepareOptionsMenu(aMenu);
}
关于android - 从 Fragment 更改 ActionBar 中一个特定 MenuItem 的 TextColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164272/