Mam galeria widget, podczas przewijania go, aktualnie wybrany obraz ma granicy - tylko prosty przełącznik, jak toGaleria setSelection nie odpala selektor obrazu
<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" />
oraz w galerii adaptera getView jego załączeniu tak, jak to
Problem polega na tym, że po zmianie wyboru galerii za pomocą metody setSelection() wybrany element nie ma ramki. Ale kiedy po prostu przewijam go palcem na wybranej pozycji działa OK. Myślę, że setSelection() nie uruchamia setSelected() lub coś podobnego.
Przypuszczam, że rozwiązaniem byłoby wywołanie metody setSelected() obok metody setSelection(), ale jak mogę ją wywołać dla aktualnie wybranego ImageView? Czy jest jakiś inny sposób robienia tego?
Powinieneś statycznie przypisać tło do widoku adaptera (w układzie). Może to być twój kod, który ustawia, że tło dzieje się zbyt późno, aby "zobaczyć" wybrany stan. Wystąpiły również problemy, jeśli widok adaptera wchodzącego do galerii nie jest możliwy do ustawienia; możesz dodać stany do tego również w selektorze. Czy próbowałeś swoich sugestii i czy to zadziałało? Zawsze możesz sprawdzić kod źródłowy 'Gallery.setSelection()' dla odniesienia! –
tylko komentarz do twojego kodu, image.setBackgroundResource (R.drawable.xxx) jest prostszy niż image.setBackgroundDrawable (getResources(). GetDrawable (R.drawable.xxx)) – Marmoy