Почему мой ShareActionProvider не обозначен четко и его меню серые?

Я использую ShareActionProvider, определенный в коде, а не в XML, на темной панели действий (Theme.Holo/DeviceDefault.Light.DarkActionBar).

Вот что я вижу:

Обратите внимание, что практически нет видимых намеков на то, что значок общего ресурса и значок мессенджера принадлежат друг другу. Окружающая коробка темная, а не светло-серая.

1 ответ

При определении ShareActionProvider в коде, особенно когда панель действий отличается темой (в данном случае потому, что она темная), вам нужно использовать тематический контекст, полученный из панели действий, а не просто обычный контекст:

final Context themedContext = context.getActionBar().getThemedContext();
ShareActionProvider ap = new ShareActionProvider(themedContext);
menuItem.setActionProvider(ap);

Спасибо Адаму Пауэллу за то, что указал на это.

Другие вопросы по тегам