Java ImageView上的涟漪效应未触发

Java ImageView上的涟漪效应未触发,java,android,android-layout,android-recyclerview,material-design,Java,Android,Android Layout,Android Recyclerview,Material Design,我有一个RecyclerView,每个项目中都有ImageViews 我在onBindViewHolder中为ImageViews设置onClickListener,如下所示: holder.starIV.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO: logic } })

我有一个
RecyclerView
,每个项目中都有
ImageView
s

我在
onBindViewHolder
中为
ImageView
s设置
onClickListener
,如下所示:

holder.starIV.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO: logic
        }
    });
涟漪效应运行良好,直到我将以下逻辑添加到
onClick
。此逻辑更改
ImageView
Drawable

holder.starIV.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (v.getId() == holder.starIV.getId()) {
                ListItem clickedItem = mDataset.get(position);
                ListItem updatedItem = new ListItem(clickedItem);
                if (clickedItem.getStarState() == STAR_ON) {
                    updatedItem.setStarState(STAR_OFF);
                    updatedItem.setStarDrawable(
                        ContextCompat.getDrawable(
                            v.getContext(),R.drawable.ic_star_border_24px));
                }
                else if (clickedItem.getStarState() == STAR_OFF) {
                    updatedItem.setStarState(STAR_ON);
                    updatedItem.setStarDrawable(
                        ContextCompat.getDrawable(
                            v.getContext(),R.drawable.ic_star_24px));
                }
                mDataset.set(position,updatedItem);
                notifyDataSetChanged();
            }
        }
    });
现在,我没有任何连锁反应。以下是
ImageView
的XML:

<ImageView
    android:id="@+id/list_item_star"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:paddingLeft="4dp"
    android:paddingRight="16dp"
    android:src="@drawable/ic_star_border_24px"
    android:clickable="true"
    android:background="?attr/selectableItemBackgroundBorderless"
    android:drawSelectorOnTop="true"
/>

将以下代码添加到父布局中

android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackgroundBorderless"

您可以将ripple drawable设置为图像视图的前景。

我尝试了您的解决方案。似乎只有在我点击父布局的区域(不包括ImageView)时才会触发涟漪效应。请尝试将focusable=false和focusableintouchmode=false放入xml格式的ImageView。我尝试了您的解决方案。行为没有改变。
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackgroundBorderless"