如何修复支持操作栏中的共享图标
How to fix the share icon in the support actionbar
我正在尝试在我的应用程序中实现共享功能。到目前为止它工作正常,我可以将文本共享到所有其他应用程序。问题是它的显示方式。
我希望共享图标可见,然后当用户点击它时,它会打开 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" />
我的应用目前看起来像这样:
它周围还有一个我不喜欢的白色边框。
有什么办法可以更改图标吗??
我该如何解决?
您只是想关闭您的分享 history.There 没有官方 API 这样做,但您可以自己制作 ShareActionProvider
。实际上有两个类似的问题:
- How do you turn off share history when using ShareActionProvider?
- How to hide the share action (which use most) icon near the share action provider?
希望这些能对你有所帮助。
如前所述 here 使用支持库时,这个问题可以很容易地解决。此方法不会关闭共享历史记录,但会隐藏操作栏中的图标。
我只需要像下面这样子类化 Android.Support.V7.Widget.ShareActionProvider
:(C# 使用 Xamarin)
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
使用任何您喜欢的图标。
我正在尝试在我的应用程序中实现共享功能。到目前为止它工作正常,我可以将文本共享到所有其他应用程序。问题是它的显示方式。
我希望共享图标可见,然后当用户点击它时,它会打开 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" />
我的应用目前看起来像这样:
它周围还有一个我不喜欢的白色边框。 有什么办法可以更改图标吗??
我该如何解决?
您只是想关闭您的分享 history.There 没有官方 API 这样做,但您可以自己制作 ShareActionProvider
。实际上有两个类似的问题:
- How do you turn off share history when using ShareActionProvider?
- How to hide the share action (which use most) icon near the share action provider?
希望这些能对你有所帮助。
如前所述 here 使用支持库时,这个问题可以很容易地解决。此方法不会关闭共享历史记录,但会隐藏操作栏中的图标。
我只需要像下面这样子类化 Android.Support.V7.Widget.ShareActionProvider
:(C# 使用 Xamarin)
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
使用任何您喜欢的图标。