GridView Выделите выбранный элемент

Я использую собственный фон для элементов Grid, и, как обычно, он работает, но когда я нажимаю на любой элемент Grid (он не работает)

Так что может быть причиной, почему он не работает, когда я делаю щелчок по любому элементу сетки, тогда как его работа в нормальном режиме.

Для ImageGallery я использую этот учебник и выделяю элемент сетки, следующий за этим

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/blue" android:state_pressed="true" /> <item android:drawable="@color/blue" android:state_selected="true" /> <item android:drawable="@color/blue" android:state_focused="true" /> <item android:drawable="@color/white" /> </selector> 

Элемент сетки xml:

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/grid_background" android:descendantFocusability="blocksDescendants" android:padding="5dp"> <ImageView android:id="@+id/grid_item_image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="centerCrop"> </ImageView> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="1dip" > <ProgressBar android:id="@+id/loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:visibility="gone" /> </FrameLayout> </RelativeLayout> 

Вот основная сетка xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> <!-- The GridView to display picture's preview --> <GridView android:id="@+id/grid_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:gravity="center" android:stretchMode="columnWidth" android:drawSelectorOnTop="true" android:focusable="true" android:clickable="true" android:scrollbars="none" > </GridView> </RelativeLayout> 

Это то, что я получаю как обычно, и даже когда я нажимаю на любой элемент GridView:

Введите описание изображения здесь

Это может помочь сделать ваш селектор таким

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/black" android:state_pressed="true" /> <item android:drawable="@color/black" android:state_selected="true" /> <item android:drawable="@color/black" android:state_focused="true" /> <item android:drawable="@color/white" /> </selector> 

И Относительная компоновка add

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:descendantFocusability="blocksDescendants" android:background="@drawable/grid_background" android:padding="5dp"> <ImageView android:id="@+id/grid_item_image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="false" android:scaleType="centerCrop"> </ImageView> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="false" android:padding="1dip" > <ProgressBar android:focusable="false" android:id="@+id/loading" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:visibility="gone" /> </FrameLayout> </RelativeLayout> 

Назовите файл с рисунком для вашего селектора, как это называется selector.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape> <solid android:color="@color/blue" /> </shape> </item> <item android:state_pressed="false"> <shape> <solid android:color="@android:color/transparent" /> </shape> </item> </selector> 

То внутри xml gridview добавьте следующие две строки

  android:drawSelectorOnTop="true" android:listSelector="@drawable/selector"