android - 在 GridView 中更改元素 OnItemClick 的颜色

标签 android gridview

我在我的应用程序中使用 ListViews 和 GridView。我为 GridView 使用了自定义适配器,但没有为列表使用。

enter image description here

如您所见,当我单击它时,它会自动更改元素的背景。但是在 GridView 中并没有发生同样的事情。我必须手动完成吗?我想为用户提供一些反馈,典型的边框或类似的东西。我也上传了 gridview 截图。

enter image description here

GridView XML。

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="100dp"
android:drawSelectorOnTop="true"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >

现在是 GridView 适配器的 getView() 部分:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View layout=convertView;
    ViewHolder holder = null;
    GridCrop gridElement;

    if (layout == null) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        layout=inflater.inflate(R.layout.crop_grid_element,null);
        holder = new ViewHolder();
        holder.image = (ImageView) layout.findViewById(R.id.cropImage);
        holder.text = (TextView) layout.findViewById(R.id.imageTitle);
        layout.setTag(holder);
    } else {
        holder = (ViewHolder) layout.getTag();
    }

    gridElement=list.get(position);
    holder.image.setImageResource(gridElement.getImage());
    holder.text.setText(gridElement.getTitle());
    return layout;
}

class ViewHolder {
    ImageView image;
    TextView text;
}

最佳答案

尝试在您的 GridView 上使用 grid.setDrawSelectorOnTop(true);,您当前的选择器可能绘制在适配器的非透明 View 下。

关于android - 在 GridView 中更改元素 OnItemClick 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19159806/

相关文章:

android - 如何将 Onclick 监听器添加到回收站 View

android - 按下后退按钮时调用方法

javascript - ASP.NET WebForms 使用 jQuery v1.9.0 检查 GridView 中的所有复选框不起作用

java - 创建并显示新 Activity ,不能使用我的 fragment ?

android - 如何在 Android Studio 中生成 Javadoc HTML?

android - FlexboxLayout 实现 GridView 效果

c# - UserControl 将 GridView 导出为 PDF

wpf - 如何使用GridViewComboBoxColumn并允许用户进行编辑?

c# - 使用 ASP.NET 加载时更改我的 GridView 中的值

android - Flutter Base64编码字符串不完整