2011-07-08 47 views
6

我已經畫廊插件,當你把它的滾動,當前選定的圖像有邊界 - 只是簡單的選擇,這樣畫廊爲setSelection不火圖像選擇

<selector 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:state_selected="true" 
    android:drawable="@drawable/thumbnail_frame" /> 
<item 
    android:drawable="@android:color/transparent" /> 

,並在畫廊適配器的getView及其連接這樣

image.setBackgroundDrawable(getResources().getDrawable(R.drawable.xxx)); 

的問題是,當我改變爲setSelection(庫選擇),選擇的項目沒有邊框。但是,當我只是用選定的項目上的手指邊框滾動它工作正常。我想,setSelection()不會觸發setSelected()或類似的東西。

我想,解決的辦法是在setSelection()旁邊調用setSelected(),但是如何爲當前選擇的ImageView調用它?或者有沒有其他的方式來做到這一點?

+0

您應該將背景靜態分配給適配器視圖(在佈局中)。它可能是你的代碼,設置背景發生得太遲而「看不到」所選狀態。如果進入畫廊的適配器視圖不適用,我也遇到了問題;你可能想爲你的選擇器添加狀態。你有沒有嘗試你的建議,並做到了這一點?您可以隨時檢查'Gallery.setSelection()'的源代碼以供參考! –

+0

只是對您的代碼的評論,image.setBackgroundResource(R.drawable.xxx)比image.setBackgroundDrawable(getResources()。getDrawable(R.drawable.xxx))簡單 – Marmoy

回答

0

使用ViewPager和setCurrentItem。他們工作得更好。

+0

嗯,是的,現在我可以使用它,但它在發佈時尚未提供。 – Sver