隐藏共享操作提供程序附近的共享操作图标WITHOUT ActionBarSherlock

时间:2013-07-29 17:54:08

标签: android android-actionbar shareactionprovider

我对Android开发很陌生,我正在尝试用 ShareActionProvider 构建一个ActionBar,使用“stock”ActionBar(即使用ActionBarSherlock) ,因为我只想针对ICS +设备。

我希望启用历史记录功能(默认情况下是这样),但我不希望在共享按钮附近使用最常用的意图图标,因为它占用了太多空间。
我知道使用ActionBarSherlock这是可能的,但正如我所说的那样,我正在尝试使用ActionBar库存,所以我想知道如何克服这个问题。

我找到了这两个相关的答案:
How to hide the share action (which use most) icon near the share action provider?
Android: ShareActionProvider with no history

但他们都没有清楚地说明如何编辑Android源代码以获得隐藏图标的ActionBar的另一个“版本”。
我的意思是,我如何将这两个答案结合起来并将我的应用程序发送到隐藏最常用图标的修改后的ActionBar类?

编辑:
我正在寻找一个简短的操作列表,以扩展三个类 ShareActionProvider ActivityChooserView ActivityChooserMode 来构建修改后的操作它们的版本不会在Eclipse中引发错误。 AFAIK没有在网络上的其他地方记录(谷歌没有给出结果)。

2 个答案:

答案 0 :(得分:1)

  

但是他们都没有清楚地说明如何编辑Android源代码以获得隐藏图标的ActionBar的另一个“版本”。

那是因为你没有改变动作栏。您更改了ShareActionProvider。如果您不喜欢ShareActionProvider的现有实现,请创建自己的实现,也许使用现有实现作为起点。

例如,这就是the accepted answer问题中的Android: ShareActionProvider with no history所描述的内容。问题和答案都没有引用ActionBarSherlock。

答案 1 :(得分:0)

  1. 将来自https://android.googlesource.com/platform/frameworks/support.git的源文件ActivityChooserView.java和ShareActionProvider.java文件复制到您的项目中。
  2. 在两个文件上执行eclipse上的Ctrl + Shift + O以修复任何导入。在ShareActionProvider.java中,将ActivityChooserView.java的导入更改为新文件。
  3. 将已实施onCreateOptionsMenu()的文件中的导入ShareActionProvider更改为您复制此文件的位置。
  4. 在menu.xml中,将ShareActionProvider类更正为新类。
  5. 在ActivityChooserView.java中查找if(activityCount == 1 || activityCount> 1&& historySize> 0)。将其更改为if(false)
  6. 你已经全部准备好了!