我正在尝试使用 ShareActionProvider,如 http://developer.android.com/training/sharing/shareaction.html但我的 ActionBar 不显示共享图标。相反,显示溢出按钮,菜单项“共享”(其余工作正常)。我正在使用这段代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:compat="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/menu_item_share"
android:title="share"
compat:showAsAction="ifRoom|collapseActionView"
android:actionProviderClass="android.widget.ShareActionProvider"/>
</menu>
在我的 Activity 中,我有:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate menu resource file.
getMenuInflater().inflate(R.menu.menu_detail, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
// Return true to display menu
return super.onCreateOptionsMenu(menu);
}
// Call to update the share intent
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(shareIntent);
}
}
我的主题是:
<style name="Theme.Base" parent="android:Theme.Light" />
<style name="AppTheme" parent="Theme.Base">
<item name="android:actionModeCloseDrawable">@drawable/ic_action_back</item>
</style>
为什么分享图标不显示?
最佳答案
您的一些代码 (compat:showAsAction
) 是为使用操作栏的 appcompat-v7
backport 而编写的。
您的一些代码(getActionProvider()
、Theme.Light
)是为使用 native 操作栏而编写的。
选择一个并坚持下去。
我的猜测是,您当前的更多代码是为 native 操作栏设置的,在这种情况下,将菜单 XML 资源中的 compat:
更改为 android:
将会可能会让你的 ShareActionProvider
正常工作。
关于android - 共享图标未显示在 ActionBar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768802/