3
上CardView沒有點擊效果

我使用的是RecyclerViewGridLayoutManager和我動態添加具有此XML的新元素:在RecyclerView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:drawSelectorOnTop="true"> 

    <android.support.v7.widget.CardView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/cardView" 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:clickable="true" 
     android:foreground="?android:attr/selectableItemBackground" 
     style="@style/cardView"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" 
      android:gravity="center"> 

      <ImageView 
       android:id="@+id/direction_list_icon" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:src="@drawable/icon" 
       android:layout_gravity="center" 
       android:padding="8dp" 
       android:clickable="true" /> 

      <TextView 
       android:id="@+id/direction_list_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Dummy text" 
       android:layout_gravity="center" 
       android:padding="8dp" 
       android:clickable="true" /> 

     </LinearLayout> 
    </android.support.v7.widget.CardView> 
</LinearLayout> 

的問題是,我看到的點擊CardView項目的影響,只有當我雙擊它或長時間點擊。

我試圖把裏面的CardViewLinearLayout使點擊與android:background="?android:attr/selectableItemBackground"但結果保持不變

+1

問題只有通過與GridView控件取代RecyclerView解決。 –

+0

但是如果我想使用RecyclerView? – temirbek

回答

1

我已經在我的項目設置背景,以CardView的根元素,解決了這個問題。在佈局這應該工作:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/cardView" 
    android:layout_width="match_parent" 
    android:layout_height="150dp" 
    style="@style/cardView"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:background="?android:selectableItemBackground"> 

    </LinearLayout> 
</android.support.v7.widget.CardView> 
+1

我試過但沒有結果。無論如何感謝 –

0

android:focusable="false" 
android:focusableInTouchMode="false" 

您CardView

+0

沒有在我的工作 – temirbek