2015-04-28 90 views
5

我使用自定义背景网格项目,并作为正常的它工作,但是当我做点击任何网格项目(它不工作)GridView控件高亮所选项目

那么可能是什么原因,为什么当我在任何网格项目做点击它不工作,而其在正常模式下工作..

对于ImageGallery我使用this教程,并强调网格项下this一个

<?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的项目的挖掘:

enter image description here

+0

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> 

然后里面的GridView添加的XML删除背景并尝试Gridview中'android:listSelector'中的选择器。 – Harry

回答

4

这可能会帮助你 让你的选择器像这样

<?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> 

和相对布局添加

<?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> 
+0

没有任何反应 – Oreo

+0

删除此行android:listSelector =“@ android:color/transparent” –

+0

试过检查以上更新后的代码 – Oreo

1

写绘制文件,您的选择是这样称呼它下面两行

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

这是可行的 – apk

+0

当手指从网格物品上抬起时颜色消失 – Ramesh