Articles of android recyclerview

如何使用Espresso计算RecyclerView项目

使用浓咖啡和Hamcrest, 如何计算recyclerView中可用的物品编号? 例如:我想检查是否有5个项目显示在一个特定的RecyclerView(如果需要滚动)。

在Android的RecyclerView中检测animation完成

与ListView不同的是, RecyclerView没有简单的方法来设置一个空的视图,所以必须手动pipe理它,在适配器的项目数为0的情况下使空视图可见。 实现这个,起初我试图在修改底层结构(在我的情况下是ArrayList )之后调用空视图逻辑,例如: btnRemoveFirst.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { devices.remove(0); // remove item from ArrayList adapter.notifyItemRemoved(0); // notify RecyclerView's adapter updateEmptyView(); } }); 它做的事情,但有一个缺点:当最后一个元素被删除,删除animation完成之前 ,删除后立即出现空视图。 所以我决定等到animation结束,然后更新UI。 令我惊讶的是,我找不到在RecyclerView中监听animation事件的好方法。 首先想到的是使用这样的isRunning方法: btnRemoveFirst.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { devices.remove(0); // remove item from ArrayList adapter.notifyItemRemoved(0); // notify RecyclerView's adapter recyclerView.getItemAnimator().isRunning(new RecyclerView.ItemAnimator.ItemAnimatorFinishedListener() { […]

如何在LinearLayoutManager中重叠项目 – RecyclerView(如堆叠卡)

有可能重叠从RecyclerView项目? 我正在尝试与LinearLayoutManager。 我的需求和LinearLayoutManager一样,只需要从上到下重叠项目。 (如堆叠卡) 我已经看到一些使用ListView的变种 。 所以,我认为在RecyclerView中也是可以的。但是,经过一段时间的探索,我觉得需要一段时间来实现一个自定义的布局pipe理器,并且对此有相当的了解。(我看着Dave的post关于构build自定义LayoutManager ) 所以,现在我想我可能只需要使用基于我的需求的ListView的变化,而不是处理自定义布局pipe理器这么复杂。 但是,我只需要使内部的项目重叠。 我觉得可能还有一些我还没有意识到的方向。 请让我知道是否有任何除了上面的ListView varient和自定义布局pipe理器。 我也会在这里发表我的发现。

使用Android的RecyclerView时,在滑动的行下添加带有文本/图标的彩色背景

编辑:真正的问题是,我的LinearLayout被包裹在另一个布局,导致不正确的行为。 Sanvywell接受的答案有一个更好,更完整的例子,如何在swiped视图下绘制颜色,而不是我在问题中提供的代码片段。 现在RecyclerView小部件已经通过ItemTouchHelper类的帮助进行了行刷式的本机支持,我试图在一个应用程序中使用它,行的行为与Google的Inbox应用程序类似。 也就是说,向左侧滑动会执行一个动作,而向右滑动则会执行另一个动作。 使用ItemTouchHelper.SimpleCallback的onSwiped方法实现操作本身很容易。 然而,我无法find一个简单的方法来设置颜色和图标,应该显示在当前正在滑动的视图下(如在谷歌的收件箱应用程序)。 要做到这一点,我试图覆盖ItemTouchHelper.SimpleCallback的onChildDraw方法是这样的: @Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { RecyclerViewAdapter.ViewHolder vh = (RecyclerViewAdapter.ViewHolder) viewHolder; LinearLayout ll = vh.linearLayout; Paint p = new Paint(); if(dX > 0) { p.setARGB(255, 255, 0, 0); } else { p.setARGB(255, 0, 255, 0); } […]

垂直滚动列表的回收站视图与水平可滚动的行

我想要一个RecyclerView,其中我们有垂直滚动的项目列表。 从这个可滚动的项目列表中,有些应该有水平滚动的能力。 如下图所示 任何人都可以请指导我如何做到这一点? 谢谢。

将空间添加到RecyclerView的末尾

我有一个gridlayout的回收站。 我想要的是,当用户滚动到列表的末尾( 请参阅我的坏模型 ),应该有一个高度为50dp,这是不是我的网格相同的尺寸的空白空间。 请注意,这个空间只在最后端显示,因为我不想更改布局。 我可以这样做,recycerview有50dp的保证金底部,但我不想这样做。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:scrollbars="vertical" /> </RelativeLayout>

在RecyclerView中分组中的元素

我需要将RecyclerView中的元素与标题组分开(如下图中的收件箱应用程序),请帮助我弄清楚什么方法对我的情况会更好:1)我可以使用Heterogenous布局,但它是在组中插入新的元素不太方便(因为我需要检查是否已经添加了同一组的元素,或者我需要添加新的分隔符)。 所以在这种情况下,我会把这种数据结构的所有操作包装到一个单独的类中。 2)理论上,我可以用自己的RecyclerView包装每个组标签是一个好主意?

select一个RadioButton值并向后滚动,移除RecyclerView中的选定值

在我的应用程序中,在RecyclerView的帮助下显示20个select题。 如果我更改第一个RadioGroup的值并向下滚动,再次滚动删除RecycelarView的选定值,我也想使用选定的RadioButton值进一步,我也检查link1,但我不明白他在做什么。 这里是我的示例代码片段,让我知道如果你需要任何澄清。 package com.testing.survey; import java.util.List; import android.annotation.SuppressLint; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; @SuppressWarnings("rawtypes") public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { private List<Student> stList; public DataAdapter(List<Student> students) { this.stList = students; } // Create new views @Override public DataAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int […]

如何在RecyclerView上sorting(notifyDataSetChanged)期间提供自定义animation

目前,通过使用默认的animationandroid.support.v7.widget.DefaultItemAnimator ,这是我在sorting过程中的结果 DefaultItemAnimatoranimationvideo: https : //youtu.be/EccI7RUcdbg public void sortAndNotifyDataSetChanged() { int i0 = 0; int i1 = models.size() – 1; while (i0 < i1) { DemoModel o0 = models.get(i0); DemoModel o1 = models.get(i1); models.set(i0, o1); models.set(i1, o0); i0++; i1–; //break; } // adapter is created via adapter = new RecyclerViewDemoAdapter(models, mRecyclerView, this); adapter.notifyDataSetChanged(); } 但是,在sorting过程中(notifyDataSetChanged),而不是默认的animation,我更喜欢提供自定义animation如下。 […]

是否有可能使CursorAdapter在recycleview中设置,就像ListView?

我到目前为止没有谷歌解决scheme来replace我的项目中的列表视图,因为我需要使用与sqlite链接的游标。 老办法如下: listview.setAdapter(cursorAdapter)这样,我可以得到游标来处理数据库中的数据 但现在, recycleview.setAdapter(recycleview.adapter)它不能识别适配器扩展BaseAdapter 所以任何人都可以帮我一把吗?