Почему мой ShareActionProvider не обозначен четко и его меню серые?
Я использую ShareActionProvider
, определенный в коде, а не в XML, на темной панели действий (Theme.Holo/DeviceDefault.Light.DarkActionBar
).
Вот что я вижу:
Обратите внимание, что практически нет видимых намеков на то, что значок общего ресурса и значок мессенджера принадлежат друг другу. Окружающая коробка темная, а не светло-серая.
1 ответ
При определении ShareActionProvider
в коде, особенно когда панель действий отличается темой (в данном случае потому, что она темная), вам нужно использовать тематический контекст, полученный из панели действий, а не просто обычный контекст:
final Context themedContext = context.getActionBar().getThemedContext();
ShareActionProvider ap = new ShareActionProvider(themedContext);
menuItem.setActionProvider(ap);
Спасибо Адаму Пауэллу за то, что указал на это.