ActionBar按钮保持“按下”状态,可能吗?

时间:2012-01-18 19:28:41

标签: android android-layout

我有一个应用程序,在某个Activity(绘图)中可以处于多种状态中的任何一种状态,例如绘制,擦除,选择等。

为了启用这些状态,我在ActionBar中为每个状态设置了一个按钮,但我想做的一件事就是通过保持按钮按下来“显示”用户启用哪个状态或按下直到我将其关闭(当他们通过按其中一个按钮切换状态时)。

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

感谢。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我同意Bruno关于这样一个事实,如果你在一个单独的工具栏中为了用户体验标准而做它可能是最好的,你的代码可能看起来更好,因为你无法完全自定义操作栏但是如果你决定去有了它,我可以想到一些非常简单的东西,当点击其中一个菜单按钮时,你将按下的按钮设置为一个新的drawable(按下按钮),其他按钮设置为正常的drawable(未按下),这样每个菜单图标都会被按下而不是按下图标。不过,你必须invalidateOptionsMenu

答案 2 :(得分:0)

我遇到了同样的问题而没有找到解决方案。但是,我找到了一个对我有用的解决方法:

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