滚动在回收器视图列表项中不起作用

时间:2018-12-26 07:35:37

标签: android android-recyclerview cardview

我在recycler-view中使用activity_main.xml,在card_item_list.xml中使用多个卡片视图。我无法滚动卡片视图。如果我触摸cardview以外的任何地方,则效果很好。但是,如果我点击cardview,则recycler-view的滚动行为不起作用。

activity_main.xml

   <ViewFlipper
                android:id="@+id/day_navigation"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            <ViewFlipper
                android:id="@+id/view_flipper"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:visibility="visible">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/grey_ee"
                    android:focusableInTouchMode="true"
                    android:paddingBottom="35dp">

                    <TextView
                        android:id="@+id/error_container_text"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_marginLeft="15dp"
                        android:layout_marginRight="15dp"
                        android:layout_marginTop="20dp"
                        android:elevation="1dp"
                        android:gravity="center"
                        android:padding="10dp"
                        />

                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/time_duration_recycler_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/error_container_text"
                        android:layout_marginTop="20dp" />

                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/hours_detail_recycler_view"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                       android:layout_below="@+id/time_duration_recycler_view"
                        android:layout_centerHorizontal="true"
                        android:layout_marginTop="25dp"
                        android:nestedScrollingEnabled="false" />
                </RelativeLayout>

card_item.xml

<RelativeLayout
    android:id="@+id/errors_and_notifications_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/divider_for_details"
    android:background="@color/white"
    android:paddingTop="15dp">

    <android.support.v7.widget.CardView
        android:id="@+id/card_view_errors"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/white"
        app:cardCornerRadius="0dp"
        app:cardElevation="0dp">

        <RelativeLayout
            android:id="@+id/single_error_row"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/details"
            android:layout_marginBottom="15dp"
            android:orientation="horizontal"
            android:paddingLeft="15dp"
            android:paddingRight="15dp">

            <ImageView
                android:id="@+id/time_entry_error_image"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:src="@drawable/error" />

            <TextView
                android:id="@+id/single_error_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="45dp"/>
        </RelativeLayout>

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

    <android.support.v7.widget.CardView
        android:id="@+id/card_view_notifications"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/card_view_errors"
        app:cardBackgroundColor="@color/white"
        app:cardCornerRadius="0dp"
        app:cardElevation="0dp">

        <RelativeLayout
            android:id="@+id/single_notification_row"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="15dp"
            android:orientation="horizontal"
            android:paddingLeft="15dp"
            android:paddingRight="15dp">

            <ImageView
                android:id="@+id/time_entry_notification_image"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:src="@drawable/information" />

            <TextView
                android:id="@+id/single_notification_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="45dp"
                android:textColor="@color/black_58"
             />
        </RelativeLayout>

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

</RelativeLayout>

我也添加了Viewflipper。这是原因吗? 您可以看到第一个XML具有两个recycler-view。一个工作正常,因为该回收者视图没有卡片视图。

3 个答案:

答案 0 :(得分:0)

一旦尝试,

recylerView.setHasFixedSize(true); 
recylerView.setNestedScrollingEnabled(false);

答案 1 :(得分:0)

关闭recyclerview水平滚动。

     LayoutManager layoutManager = new LinearLayoutManager(this,RecyclerView.VERTICAL,false) 
    {
         @override 
         public Boolean canScrollHorizontally(){

          return false;
          }
     }

     recyclerView.setLayout(layoutManager);

答案 2 :(得分:0)

对于main.xml,请尝试进行如下更改:

print(''.join([str(b)[::-1]+a for a,b in dict.items()[::-1]]))

注意:变量可能有所不同,但是逻辑对我有用。