我正在尝试使用像http://developer.android.com/training/sharing/shareaction.html中的ShareActionProvider但我的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>
在我的活动中,我有:
@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>
为什么共享图标没有显示?
答案 0 :(得分:2)
编写了部分代码(compat:showAsAction
)以使用操作栏的appcompat-v7
后端。
编写了部分代码(getActionProvider()
,Theme.Light
)以使用本机操作栏。
选择一个并坚持下去。
我的猜测是,您为当前操作栏设置了更多当前代码,在这种情况下,将菜单XML资源中的compat:
更改为android:
可能会获得ShareActionProvider
工作