共享图标未显示在ActionBar中

时间:2015-02-27 15:39:02

标签: android

我正在尝试使用像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>

为什么共享图标没有显示?

1 个答案:

答案 0 :(得分:2)

编写了部分代码(compat:showAsAction)以使用操作栏的appcompat-v7后端。

编写了部分代码(getActionProvider()Theme.Light)以使用本机操作栏。

选择一个并坚持下去。

我的猜测是,您为当前操作栏设置了更多当前代码,在这种情况下,将菜单XML资源中的compat:更改为android:可能会获得ShareActionProvider工作