我有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:numColumns="auto_fit"
android:verticalSpacing="5dip"
android:horizontalSpacing="2.5dip"
android:columnWidth="100px"
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="@drawable/transparent"
android:padding="5dip"
android:scrollbarStyle="outsideOverlay"
android:clickable="true" />
</RelativeLayout>
现在,我使用一个自定义适配器来扩展我自己的视图,并将它们设置为GridView中的项目,并在GridView中的单击上设置一个侦听器。
GridView grid = (GridView) findViewById(R.id.grid);
grid.setAdapter(new ProductAdapter(getApplicationContext(), products));
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
...
}
});
问题是,如果我按下GridView中的一个单元格,监听器就不会启动。如果我使用触摸板在网格中导航,然后按下触摸板,监听器就会启动。是否有其他视图正在捕获单击?我的自定义视图由一个带有ImageView的LinearLayout和一个TextView组成。我了解到,为GridView展开布局在某些地方导致了一个问题。
如何使网格中的项目可单击?
编辑
在我的适配器中展开布局,或者只是实例化一个视图,然后为CellView返回这个视图,没有区别。