使用GridView
并尝试将所选项目突出显示为灰色。这个工作正常,直到我在Android 2.3上测试它。在Android 2.3上,当您选择项目时会发生这种情况:
在此屏幕截图中,我点击了Restaurants项目。基本上整个GridView
以灰色突出显示而不是所选项目。但是,在Android 4.0+中,此GridView
按预期工作,并且正确点击项目会突出显示它们(而不是GridView
!)灰色。
这是我的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>
这是res/drawable/list_view_selector.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@color/light_grey" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@color/light_grey" />
<item
android:drawable="@color/transparent" />
</selector>
我尝试了this解决方法,但这只会导致2.3和4.0+设备上没有任何内容(甚至不是所选项目)突出显示。
感谢任何帮助。
答案 0 :(得分:4)
将选择器应用于项目布局的background
,然后设置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>
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/calendergrid"
android:layout_width="42dp"
android:layout_height="45dp"
android:gravity="center"
android:textColor="#ffffff"
android:textStyle="bold"
android:background="@drawable/listselectorforgridview"
>
</TextView>
只需粘贴即可使用...
ArrayAdapter<String> dateadapter = new ArrayAdapter<String>(context,
R.layout.textviewforcalendergrid, calenderdays);