Tag: android recyclerview

只有在RecycleView / List大于屏幕的情况下,才能使用setStackFromEnd

我有一个RecyclerView,我想开始显示底部项目,所以我使用: myLayoutManager.setStackFromEnd(true) 。 只要有足够的项目填满屏幕,它就可以工作,但如果RecyclerView中只有少量项目,则会将其推下,并在屏幕顶​​部留下空白区域 有什么办法可以防止这种情况,或者如果RecyclerView大于屏幕高度,只有setStackFromEnd ? 下面是我得到的和我试图得到的一个例子:

作为运营商,我不清楚kotlin文档

文档对我来说真的很神秘 通常,如果转换不可行,转换运算符将抛出异常。 >因此,我们称之为不安全的。 Kotlin中不安全的转换由中缀运算符> as完成(请参阅运算符优先级): val x:String = y作为字符串 因为“as”这个词在网络引擎中不容易找到,所以我不能理解as和as的用法是以什么方式与运营商有关的 鉴于此代码: override fun onBindViewHolder(holder: RecyclerView.ViewHolder, item: ViewType) { holder as NewsViewHolder//why is not called holder2 considering is adressed to NewsViewHolder? holder.bind(item as RedditNewsItem) } 如果我摆脱了NewsViewHolder,intelliJ点绑定在红色。 原因是因为在方法绑定中有一个内部类 inner class NewsViewHolder(parent: ViewGroup) : RecyclerView.ViewHolder( parent.inflate(R.layout.news_item)) { private val imgThumbnail = itemView.img_thumbnail private val description = itemView.description private […]

在RecycleView适配器中实现多个ViewHolder类型

这可能是一个讨论不是一个问题。 正常的方式来实现多种类型 如你所知,如果我们想要在RecyclerView实现多种类型,我们应该提供多个CustomViewHolder扩展RecyclerView.ViewHolder 。 例如, class TextViewHolder extends RecyclerView.ViewHolder{ TextView textView; } class ImageViewHolder extends RecyclerView.ViewHolder{ ImageView imageView; } 然后我们必须重写getItemViewType 。并在onCreateViewHolder中构造TextViewHolder或ImageViewHolder 。 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 0) { return new ImageViewHolder(mLayoutInflater.inflate(R.layout.item_image, parent, false)); } else { return new TextViewHolder(mLayoutInflater.inflate(R.layout.item_text, parent, false)); } } 上面的代码是正常的,但有另一种方式。 其他方式 我认为只有一个CustomViewHolder就足够了。 class MultipleViewHolder […]

所有ViewHolders同时创建

我有RecyclerView <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_task_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/toolbar"> <android.support.v4.widget.NestedScrollView android:id="@+id/scroll_task_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:focusableInTouchMode="true" android:orientation="vertical"> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rv_task_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/background_task_list" /> <android.support.v4.widget.Space android:layout_width="match_parent" android:layout_height="80dp" /> </LinearLayout> </android.support.v4.widget.NestedScrollView> </android.support.v4.widget.SwipeRefreshLayout> 初始化: rv_task_list.layoutManager = LinearLayoutManager(context) rv_task_list.layoutManager.setAutoMeasureEnabled(true) rv_task_list.isNestedScrollingEnabled = false rv_task_list.adapter = adapter 在适配器中设置数据: data.addAll(tasksToAdapter) notifyDataSetChanged() (UPD)适配器: class TaskAdapter(private val view: ITaskList) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { val data: […]

如何用RecyclerView实现无尽的列表?

我想将ListView更改为RecyclerView 。 我想在RecyclerView使用OnScrollListener的onScroll来确定用户是否滚动到列表的末尾。 如何知道用户是否滚动到列表的末尾,以便从REST服务中获取新数据?

RecyclerView粘滞页脚与DividerItemDecoration

这个问题以前可能已经被问过了,但我找不到解决我所面临的确切问题的方法。 我需要添加页脚到我的RecyclerView,使页脚与其余的项目滚动。 我从这篇文章中获得了灵感来创建一个FooterDecoration,它将一个布局添加到列表的最后。 https://stackoverflow.com/a/33458367 除了FooterDecoration,我还添加了DividerItemDecoration。 这种方法的问题是,页脚被添加到最后的divider项目之前,而不是之后。 如何添加页脚使其在最后一个项目分隔符之后被添加? 这个代码在Kotlin。 class FooterDecoration( val context: Context, val parent: RecyclerView, var layout: View ) : RecyclerView.ItemDecoration() { init { layout.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)) } override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { super.onDraw(c, parent, state) layout.layout(parent.left, 0, parent.right, layout.measuredHeight) for (i in 0..parent.childCount – 1) { val view […]

视差标题效果与RecyclerView

我想改变我的ListView我目前已经结束使用RecyclerView所以我可以使用StaggeredGridLayoutManager但RecyclerView没有能力添加像ListView的头。 通常使用ListView,我在标题中设置一个空视图,并将图像放在列表视图的下方,并通过滚动列表来翻译底部图像以创建Parallax效果。 所以,如果没有标题,我怎样才能创建与RecyclerView相同的视差效果?

在RecyclerView.Adapter中覆盖notifyItemChanged的动画

那么,我有一个适配器的RecyclerView,一切都很好。 ArrayList数据集中的项目正在定期更新。 所以项目和元素以及它们在列表中的位置都会改变。 这是通过简单的排序和手动调用这些方法来实现的,无论什么时候发生: // swapping two items Collections.swap(items, i, j); itemsAdapter.notifyItemMoved(i, j); // adding a new one itemAdapter.notifyItemInserted(items.size()); // when updating valus itemAdapter.notifyItemChanged(i); 后者是我痛苦的原因。 每次更新项目时,都会触发一些“闪烁”动画。 我找到了几个解决方案: // disabling all animations recyclerView.getItemAnimator().setSupportsChangeAnimations(false); // or // setting the animation duration to zero, recyclerView.getItemAnimator().setChangeDuration(0); 但是这两个都会在物品移动(被交换)时杀死动画。 我只是想重写一个动画,并保持所有这些魔术。 有没有办法做到这一点? 如果它重写ItemAnimator,有没有人有一个简单的例子? 提前致谢!

删除RecyclerView滚动效果

我的导航抽屉里有两个RecyclerView。 两者都有蓝色滚动效果。 如何在两个RecyclerView中删除这个效果? 我试着改变这个:mRecyclerView.setHasFixedSize(true); 为虚假的,但没有改变(这种方法的效果是什么?) 链接到问题的图像 PD:对不起我的英文。

RecyclerView onClick

有没有人使用RecyclerView找到一种方法来设置一个onClickListener项目在RecyclerView ? 我想为每个项目的每个布局设置一个监听器,但这看起来有点太麻烦了,我确信RecyclerView有一个方法来监听onClick事件,但是我无法弄清楚。