Android CardView单击状态不工作

Android CardView单击状态不工作,android,material-design,android-cardview,Android,Material Design,Android Cardview,我想在用户点击任何一项时更改卡片项的颜色,但什么也没有发生。。为什么? <android.support.v7.widget.CardView android:layout_width="fill_parent" android:layout_height="wrap_content" card_view:cardCornerRadius="3dp" android:layout_marginTop="9dp" android:layout_marg

我想在用户点击任何一项时更改卡片项的颜色,但什么也没有发生。。为什么?

<android.support.v7.widget.CardView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="3dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="9dp"
    android:layout_marginRight="9dp"
    card_view:cardElevation="0.01dp"
    android:layout_marginBottom="0dp"
    android:foreground="@drawable/card_foreground">

请尝试此

添加android:clickable=“true”和
android:focusable=“true”
和 将android:前台更改为
android:前台=“?android:selectableItemBackground”


在Recylerview.Adapter类中,使用以下代码


?android:attr/selectableItemBackground
如果在棒棒糖上,在棒棒糖前声明一个选择器,请使用此选项而不是前台。为什么这个问题已结束?感谢您提供此代码片段,它可能会提供一些有限的即时帮助。通过展示为什么这是一个很好的问题解决方案,A将极大地提高它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
<android.support.v7.widget.CardView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    card_view:cardCornerRadius="3dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="9dp"
    android:layout_marginRight="9dp"
    card_view:cardElevation="0.01dp"
    android:layout_marginBottom="0dp"
    android:clickable="true"
    android:focusable="true"
    android:foreground="?android:selectableItemBackground" >

</android.support.v7.widget.CardView>
@Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        LayoutInflater inflater = LayoutInflater.from(applicationContext);
        final View view = inflater.inflate(R.layout.additem, null);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int itemPosition = recyclerview.getChildPosition(view);
                String item = list.get(itemPosition);
                Toast.makeText(applicationContext, item, Toast.LENGTH_LONG).show();
            }
        });
        return new ViewHolder(view);
    }