0

アプリ内に共有機能を実装しようとしています。これまでのところ問題なく動作し、テキストを他のすべてのアプリと共有できます。問題はその表示方法です。

共有アイコンだけを表示したいのですが、ユーザーがそれをタップすると、OS ダイアログが開き、コンテンツを共有するアプリをユーザーが選択できるようになります。

    var share_article = menu.FindItem (Resource.Id.action_share);
    var share_article_provider = (Android.Support.V7.Widget.ShareActionProvider) Android.Support.V4.View.MenuItemCompat.GetActionProvider (share_article);
    share_article_provider.SetShareIntent (CreateIntent ());

およびxml:

<item 
    android:id="@+id/action_share"
    myapp:showAsAction="ifRoom"
    android:title="share"
    myapp:actionProviderClass="android.support.v7.widget.ShareActionProvider" />

私のアプリは現在次のようになっています。

ここに画像の説明を入力

私が好きではないその周りに白い境界線もあります. アイコンを変更する方法はありますか??

どうすれば修正できますか??

4

2 に答える 2

-1

ここで説明したように、サポート ライブラリを使用する場合、これは非常に簡単に修正できます。このメソッドは共有履歴をオフにしませんが、アクション バーからアイコンを非表示にします。次のようにサブクラス化する必要がありましたAndroid.Support.V7.Widget.ShareActionProvider:(Xamarinを使用したC#)

public class MyShareActionProvider : Android.Support.V7.Widget.ShareActionProvider
{
    public SingleArticleShareActionProvider (Context context) : base (context)
    {}

    public override View OnCreateActionView ()
    {
        return null;
    }
}

そして、内部で次OnCreateOptionsMenuのように使用しますMyShareActionProvider

var share_article = menu.FindItem (Resource.Id.action_share);
var share = new SingleArticleShareActionProvider (globalContext);

Android.Support.V4.View.MenuItemCompat.SetActionProvider (share_article, share);
share_article.SetIcon (Resource.Drawable.abc_ic_menu_share_mtrl_alpha);
share.SetShareIntent (CreateIntent ());

メソッドで好きなアイコンを使用できますSetIcon

于 2016-01-31T08:30:59.147 に答える