2012-01-18 70 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(),並點到另一個可繪製。我使用相同的圖像,但使用另一種顏色來向用戶顯示該按鈕處於「按下」狀態。當再次按下該按鈕時,恢復到原始繪圖。