我在我的RecyclerView中实现了无限滚动,方法是检查项目在onBindViewHolder()中的位置,以及是否需要从REST服务中请求更多的条目。如果从列表末尾开始,项目的位置小于5,并且当前没有对更多的项提出请求,则执行对更多项的请求。
@Override
public void onBindViewHolder(ItemHolder holder, int position) {
holder.bindHolder(position);
//debugging purposes
//logs the current position, the size
我正在尝试在我的RecyclerView.Adapter中添加一些新的行(项)。在我将它们添加到ArrayList中之后,我将调用notifyItemRangeInserted(changeIndexStart, newItemsAdded);,其中
changeIndexStart = is the index where the first element was inserted
newItemsAdded = how many new rows was inserted
因此,如果我有一些东西,比如:
mItems.add(item1); // position 0
mItems.a
我正在与java的android应用程序的工作。现在我必须做消息传递活动。我使用RecyclerView来显示消息项。另外,我的消息Api使用分页,每次我发送最后一个id,服务器返回之前的10条消息。(页面大小是10)。为了填充RecyclerView,我使用了一个适配器,但我的问题是,该项被多次添加到RecyclerView中。 我将把我的活动代码和适配器代码 我的活动: public class ConversationsActivity extends RootActivity implements ConversationsAdapter.ConversationOnClickHan
我想使用这些动画来使RecyclerView:的项具有动画效果
我已经做了所有需要的事情。但是,当我应用它们时,什么也不会发生。可能的问题是什么?我已经将它包含在依赖项中:
dependencies {
implementation 'jp.wasabeef:recyclerview-animators:4.0.2'
}
并添加到存储库:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
我试图用动画制作一个简单的RecyclerView示例,但是默认的动画不起作用。为什么会这样呢?这里少了什么?
主要活动:
public class MainActivity extends Activity {
List<Song> songsList;
RecyclerView recyclerView;
MyAdapter myAdapter;
RecyclerView.LayoutManager layoutManager;
Song song1;
Song song2;
Song song3;
Song song4;
Song song5;
Song song6;
我的应用程序中有回收器视图。用户界面类似于Google Play Store应用程序。它有两个视图分页器,并以交替的方式显示项目列表和网格。所有数据都是从web服务中获取的,并在两个API调用中分成两部分。列表和网格的数据是从另一个API填充的。问题是当我非常快地滚动回收器视图时,我会崩溃。在滚动回收器视图时,用于加载列表/网格中的数据的API调用来自bindData()。阅读了大量关于此主题的问题,但无法达到解决方案。
Fatal Exception: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid v
我正在使用寻呼库表格Jetpack加载数据。为了允许用户在RecyclerView中选择多个项,我使用了RecyclerView选择库。
现在,问题是,当用户选择一个项目并拖拽下来,应用程序会在选择几个项目之后崩溃。我得到了以下例外:
java.lang.IllegalStateException: Range start point not set.
我不知道我在这里错过了什么。另外,我希望在SelectionTracker中禁用拖动和选择,但找不到解决方案。任何帮助都将不胜感激。
更新
我是附加必要的代码使用的多选择以下。
适配器
fun getItemDetails(): It
class FeedRecyclerAdapter (private val postList : ArrayList<Post>) : RecyclerView.Adapter<FeedRecyclerAdapter.PostHolder>() {
class PostHolder(val binding: FragmentDataBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Po
我的RecyclerView中的项目结构如下:
Index | Item
0. Header Item
1. 0. Data
2. 1. Data
3. 2. Data
4. 3. Data
[....]
我的数据库会自动将更新分派到RecyclerView。当使用DiffUtil和我删除我的数据库中索引3处的项时,DiffUitl Dispatcher正在删除索引2处的项。我认为这是由于DiffUtil dispatcher不知道我的项目被“偏移”了一个索引。我该如何解决这个问题呢?
我有一个回收的意见项目,有很少的意见。我有一个设置,它将在显示“回收器”视图后设置一个图像视图的可见性。实现这种行为的最佳方法是什么?
在适配器ViewHolder类中,我设置了一个布尔值,它将隐藏元素,然后调用notifysetDataChanged()
public static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView imageView;
public ViewHolder(View itemView) {
super(ite
我有一个回收视图最初与5个项目。现在我要做的是在0,1,2,3和4位置再添加5个项目。
//add another 5 items to my recyclerview
for(int i=0 , i < 5 , i++){
//add new item to the list at the specified position
my_list.add(i , "new item"+ String.valueOf(i));
//notify adapter
我正在尽可能地替换项目,然后根据条件添加或删除项目。
public void addFileListEntries(List<FileListEntry> fileListEntries) {
for (int i = 0; i < Math.min(mFileListEntries.size(), fileListEntries.size()); i++) {
mFileListEntries.set(i, fileListEntries.get(i));
notifyItemChanged(i);
}
if (mFi
概述:我有一个聊天应用程序。到目前为止,我使用CursorAdapter和Listview来加载列表中的聊天项目。但现在,我计划重构代码,以便将RecyclerView与RecyclerView.Adapter和“加载更多”功能(如whatsapp )结合使用。
问题:内存消耗。使用CursorAdapter,不在可视区域的项目正在收集垃圾,但现在由于我使用的是ArrayList of my CustomModal,一旦加载列表中的所有项(单击"Load More“按钮),我就会在内存日志中看到很高的内存消耗(没有垃圾收集)。
我的猜测是,我现在正在加载ArrayList中的所有项目,