2012-01-18 63 views
4

我有一个应用程序,在某些Activity(绘图)可以在任何一种状态,如绘制,擦除,选择等ActionBar按钮保持“按下”状态,可能吗?

要启用这些状态,我有一个按钮对于ActionBar中的每一个,但我想要做的一件事是通过保持该按钮处于活动状态或按下状态,直到我将其关闭(通过按下其中一个按钮其他按钮)。

搜索这里和其他地方让我来空白...任何人都可以推荐一个可能的解决方案?我尽管想要滚动我自己的工具栏,虽然这可能是我最终的解决方案,但使用ActionBar会在这一点上大大提高速度。

谢谢。

回答

0

据我所知,没有直接的方法可以做到这一点,但是您可以实现自定义组件。不过,我对你的建议是有一个单独的工具栏不在操作栏上,因为用户期望操作栏上的所有按钮都是“操作项目”,它们立即执行某些操作,因此在操作栏上切换项目可能会破坏此操作期望。这使您可以节省操作栏上用户希望看到的内容的空间,例如:导航,“撤消”,“保存”,“删除”...

+0

是的,这正是我想作为一个长期解决方案,但原型的一些功能,并希望快速和肮脏的东西。 – 2012-01-18 20:33:02

+1

我没有看到在操作按钮中放置切换按钮有什么问题。 Google在gmail应用程序中使用它们来制作蜂窝和以上版本。我正在考虑自己实现这一点。 – Patrick 2012-01-22 19:13:18

+0

不要以为用户期望操作按钮只是按钮。自定义视图非常有用,非常常见,例如searchview。切换按钮也可以被视为动作。 – Necronet 2012-05-08 13:19:24

0

我同意布鲁诺关于事实的可能性最好如果你在一个单独的工具栏中为了用户体验标准而做它,你的代码可能会更好看,因为你不能完全自定义操作栏,但如果你决定去用它,我可以想到一些非常简单的事情,比如单击其中一个菜单按钮,将按下的按钮设置为新的可绘制(按下的按钮),将其他按钮设置为正常的可绘制(未按下),这样每个菜单图标都会有一个按下而不是按下的图标。尽管如此,你将不得不去invalidateOptionsMenu

+0

有趣。这可能适用于短期,但我同意需要长期定制解决方案。 – 2012-01-18 20:34:34

0

我有同样的问题,并没有找到解决方案。然而,我发现,我工作的解决方法:

onOptionsItemSelected(MenuItem item)方法,如果item是你想切换按钮,只需拨打item.setIcon(),并点到另一个可绘制。我使用相同的图像,但使用另一种颜色来向用户显示该按钮处于“按下”状态。当再次按下该按钮时,恢复到原始绘图。