Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android CardView的奇怪onClick高亮显示_Android_Xml - Fatal编程技术网

Android CardView的奇怪onClick高亮显示

Android CardView的奇怪onClick高亮显示,android,xml,Android,Xml,我在设置为可点击的CardView中遇到了一些奇怪的行为。单击它会以稍微不同的方式突出显示卡中的所有视图,这使得停止按卡时看起来很奇怪 。理想情况下,当你的手指放在卡片上时,我希望整张卡片都变成粉红色。当你松开时,卡片会均匀地变回白色 任何建议都将不胜感激 card_class.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://

我在设置为可点击的CardView中遇到了一些奇怪的行为。单击它会以稍微不同的方式突出显示卡中的所有视图,这使得停止按卡时看起来很奇怪

。理想情况下,当你的手指放在卡片上时,我希望整张卡片都变成粉红色。当你松开时,卡片会均匀地变回白色

任何建议都将不胜感激

card_class.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cv"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:layout_height="wrap_content">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:background="@drawable/button_rect_list_normal">
        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:clickable="false"
                android:background="@drawable/button_rect_list_normal">

                <TextView
                    android:id="@+id/class_name"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingTop="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="24sp"
                    android:textColor="@color/text"
                    android:clickable="false"
                    android:text="@string/classname_placeholder"
                    android:background="@drawable/button_rect_list_normal"
                    android:paddingBottom="18dp"
                    android:autoText="true" />

                <TextView
                    android:id="@+id/class_teacher"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="24dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textColor="@color/secondary2"
                    android:clickable="false"
                    android:text="@string/teacher_placeholder"
                    android:background="@drawable/button_rect_list_normal" />
            </LinearLayout>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/period_placeholder"
                android:id="@+id/class_period"
                android:elegantTextHeight="false"
                android:singleLine="true"
                android:paddingRight="16dp"
                android:textSize="57sp"
                android:gravity="center_vertical" />
        </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:drawable="@drawable/selected" android:state_selected="true"/>
    <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#F44336"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFCDD2"/>
</shape>

按钮列表\u normal.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cv"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:layout_height="wrap_content">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:background="@drawable/button_rect_list_normal">
        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:clickable="false"
                android:background="@drawable/button_rect_list_normal">

                <TextView
                    android:id="@+id/class_name"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingTop="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="24sp"
                    android:textColor="@color/text"
                    android:clickable="false"
                    android:text="@string/classname_placeholder"
                    android:background="@drawable/button_rect_list_normal"
                    android:paddingBottom="18dp"
                    android:autoText="true" />

                <TextView
                    android:id="@+id/class_teacher"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="24dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textColor="@color/secondary2"
                    android:clickable="false"
                    android:text="@string/teacher_placeholder"
                    android:background="@drawable/button_rect_list_normal" />
            </LinearLayout>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/period_placeholder"
                android:id="@+id/class_period"
                android:elegantTextHeight="false"
                android:singleLine="true"
                android:paddingRight="16dp"
                android:textSize="57sp"
                android:gravity="center_vertical" />
        </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:drawable="@drawable/selected" android:state_selected="true"/>
    <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#F44336"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFCDD2"/>
</shape>

pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cv"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:layout_height="wrap_content">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:background="@drawable/button_rect_list_normal">
        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:clickable="false"
                android:background="@drawable/button_rect_list_normal">

                <TextView
                    android:id="@+id/class_name"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingTop="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="24sp"
                    android:textColor="@color/text"
                    android:clickable="false"
                    android:text="@string/classname_placeholder"
                    android:background="@drawable/button_rect_list_normal"
                    android:paddingBottom="18dp"
                    android:autoText="true" />

                <TextView
                    android:id="@+id/class_teacher"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="24dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textColor="@color/secondary2"
                    android:clickable="false"
                    android:text="@string/teacher_placeholder"
                    android:background="@drawable/button_rect_list_normal" />
            </LinearLayout>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/period_placeholder"
                android:id="@+id/class_period"
                android:elegantTextHeight="false"
                android:singleLine="true"
                android:paddingRight="16dp"
                android:textSize="57sp"
                android:gravity="center_vertical" />
        </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:drawable="@drawable/selected" android:state_selected="true"/>
    <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#F44336"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFCDD2"/>
</shape>

selected.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cv"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:layout_height="wrap_content">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:background="@drawable/button_rect_list_normal">
        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/RelativeLayout01"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:clickable="false"
                android:background="@drawable/button_rect_list_normal">

                <TextView
                    android:id="@+id/class_name"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingTop="18dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="24sp"
                    android:textColor="@color/text"
                    android:clickable="false"
                    android:text="@string/classname_placeholder"
                    android:background="@drawable/button_rect_list_normal"
                    android:paddingBottom="18dp"
                    android:autoText="true" />

                <TextView
                    android:id="@+id/class_teacher"
                    android:gravity="center_vertical"
                    android:paddingStart="16dp"
                    android:paddingLeft="16dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="24dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textColor="@color/secondary2"
                    android:clickable="false"
                    android:text="@string/teacher_placeholder"
                    android:background="@drawable/button_rect_list_normal" />
            </LinearLayout>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="@string/period_placeholder"
                android:id="@+id/class_period"
                android:elegantTextHeight="false"
                android:singleLine="true"
                android:paddingRight="16dp"
                android:textSize="57sp"
                android:gravity="center_vertical" />
        </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:drawable="@drawable/selected" android:state_selected="true"/>
    <item android:drawable="@drawable/pressed" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>
</selector>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#F44336"/>
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFCDD2"/>
</shape>

如果您想更改整个卡的背景,您应该将您的drawable应用到根
CardView
,我不确定为什么您将不同的背景drawable应用到多个
视图组

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cv"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    android:clickable="true"
    android:foreground="@drawable/button_rect_list_normal"
    android:layout_height="wrap_content">


编辑:
android:background
更改为
android:foreground

谢谢您的建议。但是,当我仅将背景可绘制应用于CardView时,当我单击它时,它不会高亮显示。我在RecyclerView中使用这张卡,在适配器中我为CardView设置了onClickListener;但是值得注意的是,
android:clickable
会阻止你的
CardView
onClickListener工作。谢谢你,将背景更改为前景可以正常工作,现在整个卡都会正确高亮显示。至于我的听者不工作,它似乎仍然工作。