Android 姜饼上的GridView列表选择器高亮显示整个网格

Android 姜饼上的GridView列表选择器高亮显示整个网格,android,gridview,android-2.3-gingerbread,Android,Gridview,Android 2.3 Gingerbread,使用GridView并尝试以灰色突出显示所选项目。在我在安卓2.3上进行测试之前,它工作得很好。在Android 2.3上,选择项目时会发生以下情况: 在这个屏幕截图中,我点击了餐厅项目。基本上,整个GridView以灰色突出显示,而不是所选项目。然而,在安卓4.0+中,这个GridView工作正常,点击项目可以正确地以灰色突出显示它们(而不是GridView!) 以下是my layout.xml的相关部分: <FrameLayout android:id="@+id/grid_

使用
GridView
并尝试以灰色突出显示所选项目。在我在安卓2.3上进行测试之前,它工作得很好。在Android 2.3上,选择项目时会发生以下情况:

在这个屏幕截图中,我点击了餐厅项目。基本上,整个
GridView
以灰色突出显示,而不是所选项目。然而,在安卓4.0+中,这个
GridView
工作正常,点击项目可以正确地以灰色突出显示它们(而不是
GridView
!)

以下是my layout.xml的相关部分:

<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView 
        android:id="@+id/categories_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="4"
        android:listSelector="@drawable/list_view_selector"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />
</FrameLayout>
我尝试过解决方法,但它只会导致在2.3和4.0+设备上根本没有突出显示任何内容(甚至连选定的项目也没有)


非常感谢您的帮助。

将选择器应用于项目布局的
背景
,然后设置
android:listSelector=“@null”

网格:

<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView 
        android:id="@+id/categories_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="4"
        android:listSelector="@null"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />
</FrameLayout>
<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_view_selector">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</FrameLayout>

项目:

<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView 
        android:id="@+id/categories_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="4"
        android:listSelector="@null"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />
</FrameLayout>
<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_view_selector">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</FrameLayout>

将选择器应用于项目布局的
背景
,并设置
android:listSelector=“@null”

网格:

<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView 
        android:id="@+id/categories_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="4"
        android:listSelector="@null"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />
</FrameLayout>
<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_view_selector">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</FrameLayout>

项目:

<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView 
        android:id="@+id/categories_grid_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:horizontalSpacing="10dp"
        android:numColumns="4"
        android:listSelector="@null"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp" />
</FrameLayout>
<FrameLayout
    android:id="@+id/grid_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/list_view_selector">
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</FrameLayout>


只需将其粘贴,然后像

ArrayAdapter<String> dateadapter = new ArrayAdapter<String>(context,
                R.layout.textviewforcalendergrid, calenderdays);
ArrayAdapter dateadapter=新的ArrayAdapter(上下文、,
R.layout.textviewforcalendergrid,calenderdays);

只需将其粘贴,然后像

ArrayAdapter<String> dateadapter = new ArrayAdapter<String>(context,
                R.layout.textviewforcalendergrid, calenderdays);
ArrayAdapter dateadapter=新的ArrayAdapter(上下文、,
R.layout.textviewforcalendergrid,calenderdays);

谢谢。这解决了4.0+和2.3设备上的问题。在我的例子中,它显示了gridview周围的空间,而没有选择它。android:listSelector=“@null”清除了问题,但我不明白为什么?谢谢。这解决了4.0+和2.3设备上的问题。在我的例子中,它显示了gridview周围的空间,而没有选择它。android:listSelector=“@null”清除了问题,但我不明白为什么?