大佬教程收集整理的这篇文章主要介绍了android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您可能知道,ShareActionProvider添加了第二个图标,其中包含最常用的共享选项.这意味着我的操作栏中出现了另一个应用程序的图标,我想阻止这种行为……我已经看到了2个可能的解决方案,不幸的是两个都没有对我有用:/@H_403_3@
第一次尝试是在我的目标类中实现OnShareTargetSELEctedListener并覆盖onShareTargetSELEcted方法(如此处:ActionBarSherlock – Share Content icon issue).但额外的图标停留在那里……这是我的代码:@H_403_3@
@Override public Boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.share,menu); mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.sharE).getActionProvider(); Intent intent = getDefaultShareIntent(); mShareActionProvider.setOnShareTargetSELEctedListener(this); if(intent!=null) mShareActionProvider.setShareIntent(intent); return super.onCreateOptionsMenu(menu); } @Override public Boolean onShareTargetSELEcted(ShareActionProvider source,Intent intent) { this.startActivity(intent); // started activity ourself to prevent search history return true; }
第二次尝试是从ActionBarSherlock重写一些类,以防止它显示额外的图标(如此处:How to hide the share action (which use most) icon near the share action provider?).但是我遇到了这个解决方案的问题,因为我无法从我的自定义类中导入com.actionbarsherlock.widget.ActivityChooserModel(阻塞到外部包).即使将这个类复制到我的包中,也没有用(app崩溃)……@H_403_3@
看起来这是一个非常平常的事情来禁用这个额外的图标,但我无法弄清楚为什么上面的解决方案对我不起作用…@H_403_3@
提前感谢任何想法和sugestions@H_403_3@
>将ABS中的3个类(ShareActionProvider,ActivityChooserview和ActivityChooverModel)复制/粘贴到您的包中.
>用您自己的包替换您的导入.
>在新的ActivityChooserview中按if(false)更改行if(activityCount> 0&& historySize> 0).
(您将收到错误:“setActived”不适用于您当前的版本)
>保存并关闭课程.
>将您的项目中的类替换为android:actionProviderClass =“com.myapp.ShareActionProvider”
>在你的清单中,使minSdkVersion等于11.保存你的项目.打扫.
>返回你的Manifest,用你使用的旧版本替换你的minSdkVersion.保存并清洁.@H_403_3@
以上是大佬教程为你收集整理的android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时)全部内容,希望文章能够帮你解决android – 删除操作栏上的额外图标(使用ShareActionProvider和ActionBarSherlock时)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。