问题标签 [recyclerview-layout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - RecyclerView 每次都无法正确显示数据
在 recyclerview 中,有时它会显示第一次执行时的输出,有时会显示第二次或第三次的输出......最糟糕的是,有时它根本不显示任何数据。我从中获取数据的链接工作正常。有人可以告诉我我在哪里犯错误。我已经看到有关此问题的其他答案,但对我不起作用!
这是适配器代码
这是我的 JSON 类
这是我在其中显示数据的活动代码
这是我正在使用的 XML 布局
有几个活动使用相同的模式......有时,它显示所描述的数据,而在其他时候,它没有。任何帮助将不胜感激。
编辑:使用 recyclerViewAdapter.notifyDataSetChanged() 后,我得到了 NPE。关于如何获得这种方法的任何建议。
添加 notifyDataSetChanged() 后完成的 LogCat 是:
致命异常:AsyncTask #1 进程:admin.myproject,PID:27693 java.lang.RuntimeException:在 java.util 的 android.os.AsyncTask$3.done(AsyncTask.java:309) 处执行 doInBackground() 时发生错误。 concurrent.FutureTask.finishCompletion(FutureTask.java:354) 在 java.util.concurrent.FutureTask.setException(FutureTask.java:223) 在 java.util.concurrent.FutureTask.run(FutureTask.java:242) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) 原因:java.lang.NullPointerException:尝试调用虚拟方法 'void admin.myproject.RecyclerViewAdapter.notifyDataSetChanged()'在 admin.myproject.JSONAsync.doInBackground(JSONAsync.java:40) 的 admin.myproject.JSONAsync.doInBackground(JSONAsync.java:23) 的 admin.myproject.JSONAsync.downloadUrl(JSONAsync.java:76) 的空对象引用上在 android.os.AsyncTask$2.call(AsyncTask.java:295) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 在 java.lang.Thread.run(Thread.java :818)
android - Recycler View 创建重复项
我正在使用 Recycler View 创建项目列表,并且我在列表中获得了重复的项目。我已将 30 大小的列表传递给 Recycler View Adapter。创建的列表有 30 个项目,但只有 3 个唯一项目,所有其他都是 3 个唯一项目的重复。我无法找到错误。
android - RecyclerView 最后一项出现了奇怪的动画
我的RecyclerView
单个 item 有两个视图,两个RelativeLayout
s,在某些时候我正在翻转两个视图RelativeLayouts
,我正在旋转LayoutA
from0 to 180
度数,同时我也在旋转LayoutB
from -180 to 0
,所以会有一种翻转的感觉。它工作得很好,但是当屏幕上没有空间时(例如:对于 的最后一项RecyclerView
),我会得到奇怪的效果,在开始这个翻转之前动画 LayoutB(最初是隐藏的)展开并隐藏然后动画开始
转出
翻转
适配器代码
尽管我没有对scrollToPosition
方法进行任何调用,但 logcat 会反复打印
日志猫
有什么解决办法吗?
android - 更好的做法:重用 RecyclerViewAdapter 或为每个单独的实例?
我在一张幻灯片上有片段“传入” viewpager
。此片段包含一个RecyclerView
填充有custom-relative-layouts
. LinearLayoutManager
方向是垂直的。
我在上述查看器的下一张幻灯片上有第二个片段“查找”。“查找”将由两个回收站视图组成。它将Horizontal recyclerview
充满cardviews
(快速加载个人资料图片)。在此之下,我正在更慢地加载另一个recyclerview
,与custom-relative-layout
“传入”片段中的相同。
那有意义吗?我再详细说明一下:
问题是对于这三个recyclerview,我应该RecyclerAdapter
为每一个声明一个新的吗?我问的原因是他们都有未知的变量 item_counts。
这是我用于“传入”的 RecyclerAdapter:
对于我的标准,我应该为我创建另一个适配器horizontal-cardview-recyclerview
吗?这似乎是重复的,但除此之外,我将如何处理充气cardview
或item_layout_incoming
?
似乎应该有一种干燥的方式来做到这一点,而不会影响性能。谢谢
android - 在回收站视图中添加新项目显示位置顶部
如果我将新项目添加到愿望清单 RecyclerView 只能添加到最后一行,但我想显示在 RecyclerView 的第 0 个位置的顶部。我试图显示 RecyclerView 的第一个位置,但它不能很好地锻炼。
代码
java - RecyclerView 项目在刷新后改变大小
我有一个RecyclerView
如下图所示:
这是此设置代码RecyclerView
:
在开始更新 RecyclerView 的选定项目的新活动后,RecyclerView 将重新填充新数据以反映新更改,但我得到以下结果:
当我向下滚动时,我得到了这个差距:
刷新后我尝试调用RecyclerView#invalidate()
, #invalidateItemDecorations()
,#requestLayout()
但无济于事;&我也没有打电话setHasFixedSize(true)
给RecyclerView
.
究竟是什么问题?如何调整子项的大小,以便它们在刷新后精确地包装内容?
(PS:我尝试在不进行任何更改的情况下进行刷新,但什么也没发生,这证明了我的理论,即只有当子项目的高度发生变化时才会出现问题。)