2

我对 Android 开发很陌生,我正在尝试使用“股票”ActionBar(即不使用 ActionBarSherlock)构建带有ShareActionProvider的ActionBar,因为我只想针对 ICS+ 设备。

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

我找到了这两个相关的答案:
如何在分享操作提供程序附近隐藏分享操作(使用最多)图标?
Android:没有历史记录的 ShareActionProvider

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

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

4

2 回答 2

1

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

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

例如,这就是Android上公认的答案:ShareActionProvider with no history question 的描述。问题和答案都没有引用 ActionBarSherlock。

于 2013-07-29T18:13:50.610 回答
0
  1. 将源文件 ActivityChooserView.java 和 ShareActionProvider.java 文件从https://android.googlesource.com/platform/frameworks/support.git复制到您的项目中。
  2. 在 Eclipse 上对两个文件执行 Ctrl+Shift+O 以修复任何导入。在您的 ShareActionProvider.java 中,将 ActivityChooserView.java 的导入更改为新文件。
  3. 将实现 onCreateOptionsMenu() 的文件中的 import ShareActionProvider 更改为复制此文件的位置。
  4. 在 menu.xml 中,将 ShareActionProvider 类更正为新的。
  5. 在 ActivityChooserView.java 中查找 if(activityCount==1 || activityCount > 1 && historySize > 0)。将其更改为 if(false)

你都准备好了!

于 2014-03-15T18:21:52.597 回答