2011-07-08 4 views
6

tôi đã sưu tập phụ tùng, khi bạn di chuyển nó, hình ảnh đang được chọn có biên giới - chọn chỉ đơn giản, như thế nàyGallery setSelection không làm cháy ảnh selector

<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" /> 

và trong getView gallery adapter trực thuộc như thế này

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

Vấn đề là, khi tôi thay đổi lựa chọn thư viện với setSelection(), mục đã chọn không có đường viền. Nhưng khi tôi chỉ cần di chuyển nó với đường viền ngón tay trên mục được chọn hoạt động OK. Tôi nghĩ rằng, setSelection() không cháy setSelected() hoặc một cái gì đó như thế này.

Tôi giả sử, giải pháp sẽ là gọi setSelected() cùng với setSelection(), nhưng làm thế nào để gọi nó cho ImageView hiện đang được chọn? Hay có cách nào khác để làm điều này?

+0

Bạn nên chỉ định nền tĩnh cho chế độ xem bộ điều hợp (trong bố cục). Nó có thể là mã của bạn mà thiết lập nền đang xảy ra quá muộn để "nhìn thấy" trạng thái được chọn. Tôi cũng đã có vấn đề nếu xem bộ chuyển đổi đi vào bộ sưu tập là không thể tập trung; bạn có thể muốn thêm các trạng thái cho điều đó vào bộ chọn của bạn. Bạn đã thử đề xuất của mình và đã làm việc đó chưa? Bạn luôn có thể kiểm tra mã nguồn của 'Gallery.setSelection()' để tham khảo! –

+0

chỉ là một bình luận cho mã của bạn, image.setBackgroundResource (R.drawable.xxx) đơn giản hơn image.setBackgroundDrawable (getResources(). GetDrawable (R.drawable.xxx)) – Marmoy

Trả lời

0

Sử dụng ViewPager và setCurrentItem. Họ làm việc tốt hơn nhiều.

+0

Vâng, vâng tôi có thể sử dụng nó, nhưng nó không có sẵn tại thời điểm đăng bài. – Sver