2014-02-06 47 views
0

我有一個GridView,我想通過淡出所有項目,除了點擊的項目來處理onItemClick事件。淡出Android GridView的所有元素,但有一個

不過,我目前在嘗試此方法:

adapterView.animate().setDuration(250).alpha(0); 
clickedView.clearAnimation(); 

clickedView變淡與adapterView休息。我懷疑這是因爲動畫是在整個GridView容器上設置alpha,而不是其獨立的子項。

我在尋找至少有點優雅的解決方法來解決這個問題。我可能只是遍歷所有可見的孩子,並讓他們各自單獨褪色,但我覺得可能比這更聰明更簡單。

+0

我建議可能更容易製作元素的副本,然後顯示並隱藏其他所有內容 – Codeman

回答

2

我認爲你是在正確的軌道上。

嘗試創建一個新的View作爲clickedView的副本,設置所有屬性,包括高度,寬度等以及位置。

然後顯示clickedView,並按照原樣隱藏adapterView。

+0

Hm;我假設複製的方式是將clickedView的繪圖緩存放入Bitmap,然後在Canvas.onDraw()中擴展View以使用該位圖。無論如何,就像那樣,我不太確定。但是我更加不確定如何讓這個View得到顯示在屏幕上的適當位置。 – sigmabeta

+0

看起來像這是爲我的目的工作,但我需要做的事情是將GridView包裝在一個FrameLayout中,該框架允許我將複製的View放置在GridView上方。 值得注意的是,這樣做意味着我不得不使用ObjectAnimator,因爲出於某種原因,ViewPropertyAnimator在GridView中不能工作,如果它包含在FrameLayout中 - 我必須在FrameLayout上使用ViewPropertyAnimator,和洗澡水一起出門。 謝謝。 – sigmabeta

相關問題