Articles of android recyclerview

拖放RecyclerView是从SQLiteDatabase填充的

信息: 我有一个RecyclerView ,我用ListAdapter类中的ArrayList dataList填充它。 我从SQLiteDatabase表获取dataList的数据: DbHelper类中的DbHelper 。 我正在尝试使用SimpleItemTouchHelperCallback类实现拖放重组到RecyclerView ; 但是,虽然我现在能够移动RecyclerView元素,但列表不会重新排序或移动; 我只能暂时将列表元素相互拖动,如下图所示,但它意味着永久地将列表元素插入到它所持有的任何位置: 我希望问题出在ListAdapter类中,在方法onItemMove中,但我不知道如何解决我的问题。 问题:如何使此拖放function实际重新组织RecyclerView数据列表? 更新5:我已更新了当前的代码以获得进一步的帮助。 ListAdapter类 public class ListAdapter extends RecyclerView.Adapter { Context context; List dataList = new ArrayList(); LayoutInflater inflater; Listener listener; DbHelper dbHelper; public interface Listener { void nameToChnge(String name); } public ListAdapter(Context context, List dataList1) { this.context = context; this.dataList = dataList1; //this.listener= […]

Android中的项目下的RecyclerView标头

我找不到这种行为的解决方案: 这是RecyclerView的标题是项目下的一点点。 当然我猜它是RecyclerView。 我怎样才能做到这一点? 编辑 我所做的只是为回收者视图添加装饰。 这是我的简单装饰: public class HeaderItemDeceration extends RecyclerView.ItemDecoration { public HeaderItemDeceration() { } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { if (parent.getChildAdapterPosition(view) == 0) { outRect.bottom = -100; } } } 它正在工作,但问题是这个标题消失得太快,我的意思是下一个项目位于顶部,并且在它下面有标题,并且立即消失,因为通常它应该在下一个项目位于顶部时隐藏。 编辑2 我没有解释所有内容,所以我在这里解释。 在我的情况下,我不想拥有ActionBar。 我想要的只是在RecyclerView下的图像,如上例所示,但没有折叠工具栏。 让我们说我的Activity的样式是哪个父Theme.AppCompat.Light.NoActionBar是Theme.AppCompat.Light.NoActionBar 。 考虑到我在下面的解释和答案,我试图通过这样的布局达到目标: 它几乎正常工作。 差不多,因为我注意到了不想要的效果,当我滚动到顶部有时我必须重复滚动手势才能到达顶部。 我记录了它: 记录效果不佳 我认为使用CollapsingToolbarLayout的目标可能是错误的。

在RecyclerView中选择项目

有人问过类似的问题,但我不能让他们中的任何一个工作。 我想要的是选择RecyclerView中的项目,更改该项目视图的背景,并存储所选项目的位置。 主要问题是你有onCreateViewHolder(在适配器中),onBindViewHolder(在适配器中)和ViewHolder构造函数,并且每个人都在使用不同的方法。 现在,我甚至不知道将onClickListener放在哪里(在以前的项目中我把它放在ViewHolder中),因为人们也在建议另外两种方法。 我的想法是将每个ViewHolder(或View)存储在列表中,这样我就可以引用每一行,并从那里更改背景。 但这对我不起作用,因为当我尝试从三个地方(onCreateVH,onBindVH,VH类)中的任何一个添加到View(或ViewHolders)列表时,我的应用程序因某种原因崩溃(空指针ex)。 有什么建议么? 在哪里以及如何实施它?

当使用权重在LinearLayout内部时,Recyclerview onBindViewHolder调用所有项目

我最近从支持库recyclerview-v7:23.1.1更新到recyclerview-v7:25.1.0。 我的布局包含2个在屏幕上分割50%的recylerviews。 xml代码如下: 现在为所有列表项而不是仅显示可见项调用onBindViewHolder。 这在更新后开始发生,以支持库25.1.0。 如果移除重量,它工作正常,但需要并排有2个重定向视图。 如何告诉recyclerview回收视图而不是加载所有视图? 更新:它适用于棉花糖及以上设备。 该问题出现在Lollipop或以下。 您可以在这里find一个演示项目: https : //bitbucket.org/aniketit/recyclerviewtest

创建可扩展的RecyclerView

我正在尝试实现一个与我的草图相似的recyclerview: 这个想法是有一个父列表,当点击父列表中的列表项时,该列表项显示包含它自己的数据的子列表。 当在子列表中点击列表项时,将反映该子项的值,并更新父列表项中父项的值。 我试图让它在过去3天工作无济于事。 我尝试使用AdvancedReyclerview库,但对于像我这样的初学者来说,这是一件很糟糕的事情,特别是在传入数据时没有意义。 我复制并粘贴了我需要的文件,以获得最小的工作版本,但我不知道如何将我的数据传递到recyclerview以及如何使用新选择的值更新它。 甚至可以做我正在尝试做的事情,还是我离开了我的深度? 如果仍然难以理解,我可以解释一下。 编辑:有人建议我使用ExpandableListView而不是RecyclerView。 有什么想法吗?

工具栏未显示滑动以刷新

我正在尝试使用刷卡实现折叠收费栏刷新和回收查看。 当我试图滚动(当recyclerview只有一个项目时)工具栏崩溃,但是当我试图向下滚动以显示工具栏时,这是不可能的,因为向下滑动会导致滑动刷新。 当recyclerview有更多项目时,它完美地运作。 链接到gif有问题

Firebase安卓分页

我正在构建一个应用程序,它将显示存储在firebase上的video。 video列表需要分页,一次最多可获取20个video。 这是我认为可行的代码 private void getVideos() { Query videosQuery = FirebaseUtil.getVideosRef(); videosQuery.startAt(0); videosQuery.endAt(1); ChildEventListener videosChildEventListener = new ChildEventListener() { @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { String date = dataSnapshot.getKey(); String temp = date; } @Override public void onChildChanged(DataSnapshot dataSnapshot, String s) { } @Override public void onChildRemoved(DataSnapshot dataSnapshot) { } @Override public void […]

android中的gradle依赖错误

在下面的build.gradle中,我添加了配置部分以避免双重包含支持库。 支持库用于主项目和依赖项目,如facebook sdk。 没有配置部分,我得到“意想不到的顶级exception”。 添加该配置会使错误消失,应用程序一切正常。 现在,我正在尝试将RecyclerView添加到我的应用程序中,并且在对recyclerview进行充气时找不到RecyclerView类(尽管它构建正常)。 如果我删除了facebook SDK和配置部分,则recyclerview工作正常。 问题:我可以对build.gradle进行哪些更改以使facebook SDK正常工作并且RecyclerView可以正常工作? 换句话说,为什么配置部分不包括v7,只是它应该排除v4? dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs’) compile ‘com.android.support:support-v4:+’ compile ‘com.android.support:support-v13:+’ compile ‘com.android.support:cardview-v7:+’ compile ‘com.android.support:recyclerview-v7:+’ compile ‘com.google.android.gms:play-services:4.4.52’ compile project(‘:facebook-3.15’) compile project(‘:parse-1.5.1’) compile project(‘:viewpagerindicator-2.4.1’) } configurations { // to avoid double inclusion of support libraries all*.exclude group: ‘com.android.support’, module: ‘support-v4’ }

如何捕捉RecyclerView项目,以便每个X项目都被视为一个单元来捕捉?

背景 可以使用以下方法将RecyclerView捕捉到其中心: LinearSnapHelper().attachToRecyclerView(recyclerView) 例: MainActivity.kt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val inflater = LayoutInflater.from(this) recyclerView.adapter = object : RecyclerView.Adapter() { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val textView = holder.itemView as TextView textView.setBackgroundColor(if (position % 2 == 0) 0xffff0000.toInt() else 0xff00ff00.toInt()) textView.text = position.toString() } override fun […]

RecyclerView与不同的Cardlayouts

我想做什么 目前我正在玩RecyclerView和CardView 。 现在我写了一个RecyclerView.Adapter ,我可以在其上多次使用不同的内容显示相同的CardView – 类似于带有BaseAdapter的ListView 。 现在我想用不同的CardView-Layout编写一个RecyclerView (以Google Now的风格)。 我已经搜索过教程,但没有find任何关于该主题的有用信息。 有人知道,这需要如何实施? 要意识到这一点需要做些什么?