Articles of android recyclerview

RecyclerView notifyItemRangeChanged不显示新数据

我遇到了有关notifyItemRangeChanged的RecyclerView#Adapter问题。 似乎如果Adapter认为它从上次调用getItemCount起大小为0 ,然后我调用Adapter#notifyItemRangeChanged(0, 1) ,那么Adapter将忽略该调用(它不会导致新项目例如,插入)。 这是预期的行为吗?

RecyclerView:如何创建插入animation效果?

我有一个ReyclerView使用LinearLayoutManager和Adapter 。 我有一个项目列表,我想在recyclelerview中显示插入(幻灯片)animation。 我该怎么做? 我想根据项目的索引显示具有线性增加延迟的animation。 目前,如果我使用2个按钮,’添加’和’删除’,然后在recyclerview( notifyItemInserted()和notifyItemRemoved()上执行相应的操作,animation就会很好地进行。 如果我以编程方式循环数据集并添加项目,再次使用notifyItemInserted() ,我看不到任何animation。 我只是看到所有项目几乎同时出现。 如果我使用具有线性延迟的Asynctasks,然后在OnPostExecute()添加/删除项目,我仍然看不到任何animation。 此外,如果多个插入线程正在等待所有删除线程完成(没有删除线程运行的位置),我看到可能会遇到死锁。 我究竟做错了什么 ? 我已经在SO上经历了与此相关的大部分问题,并且花了几天时间围绕着Recyclerview的animation部分,仍然没有运气。

如何为RecyclerView项目的入口设置animation(滑入)?

基本上我想要这样的东西(在30秒标记处) 一旦活动开始,我希望我的项目顺序滑动。 我试过谷歌搜索。 我找不到任何我能理解的东西。 我仍然在开发这个为Android开发应用程序的疯狂世界。 谢谢。

滚动RecyclerView滚动到始终位于顶部

我使用线性布局管理器和RecyclerView与LinearLayout Manger来填充一些项目列表。 当我第一次显示recyclerview时,我使用: linearLayoutManager.scrollToPosition(desiredindex); 它滚动到我喜欢的顶部: 现在这里是棘手的部分, 当我滚动到recyclerview顶部(即新项目索引将低于desiredindex )并且我打电话: linearLayoutManager.scrollToPosition(desiredindex); 它仍然可以正常工作。 但是当desiredindex,滚动超出desiredindex, recycler view滚动,以使所需的desiredindex项目位于底部而不是顶部 。 但我希望瓷砖滚动到顶部而不是底部:

Recycler View Fatal Exception:java.lang.ArrayIndexOutOfBoundsException

我通过crashlytics得到了这个堆栈跟踪。 我不知道问题出在哪里。 有没有StaggeredGridLayoutManager的替代品,我可以使用它来获得像布局一样的列表视图。 Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: start len. start=-1, end=11, len=11 at java.util.Arrays.checkStartAndEnd(Arrays.java:1745) at java.util.Arrays.fill(Arrays.java:803) at android.support.v7.widget.StaggeredGridLayoutManager$LazySpanLookup.invalidateAfter(SourceFile:2404) at android.support.v7.widget.StaggeredGridLayoutManager.handleUpdate(SourceFile:1373) at android.support.v7.widget.StaggeredGridLayoutManager.onItemsRemoved(SourceFile:1327) at android.support.v7.widget.RecyclerView$6.dispatchUpdate(SourceFile:725) at android.support.v7.widget.RecyclerView$6.onDispatchFirstPass(SourceFile:716) at android.support.v7.widget.AdapterHelper.dispatchFirstPassAndUpdateViewHolders(SourceFile:316) at android.support.v7.widget.AdapterHelper.dispatchAndUpdateViewHolders(SourceFile:302) at android.support.v7.widget.AdapterHelper.applyRemove(SourceFile:182) at android.support.v7.widget.AdapterHelper.preProcess(SourceFile:103) at android.support.v7.widget.RecyclerView.processAdapterUpdatesAndSetAnimationFlags(SourceFile:2767) at android.support.v7.widget.RecyclerView.onMeasure(SourceFile:2538) at android.view.View.measure(View.java:16521) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5134) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16521) at android.support.v4.view.ViewPager.onMeasure(SourceFile:1489) at android.view.View.measure(View.java:16521) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) […]

Android Firebase聊天在添加新项目时,RecyclerView会自动滚动到底部

我正在使用firebase开发一个Android聊天。 我试图研究这个问题,但我找不到一个好的解决方案。 希望可以有人帮帮我。 我的问题,如果添加新项目,我希望RecyclerView自动滚动。 这是我的代码。 @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.chatlayoutchat, container, false); Connectivity connectivity=new Connectivity(); if(connectivity.isConnected(getActivity())) { if(getArguments() != null) { Firebase.setAndroidContext(this.getActivity()); String ccustomersid = getArguments().getString(“customersid”); String creferralae = getArguments().getString(“referralae”); String ccustomersname = getArguments().getString(“customersname”); customersid = ccustomersid; referralae = creferralae; customersname = ccustomersname; Firebase.setAndroidContext(this.getActivity()); editText = […]

android回收站视图中的水平和垂直滚动

我有一个要求,我需要在回收站视图中进行水平滚动和垂直滚动。 它基于来自服务器的数据types。 如果来自服务器的响应将第一个元素作为数组,我需要将其放在水平滚动列表中,如果第二个元素是单个对象,那么我需要在卡片中显示它。 同样,订单也会发生变化,应该反映在UI中。 我怎样才能做到这一点。

ItemDecoration基于recyclerview中的viewtype

我在RecyclerView有多种视图types ,我想根据视图types添加ItemDecoration 。 有没有办法做到这一点? 这将为每个元素添加一个装饰: recyclerView.addItemDecoration(decoration); 我看到这个库,但它只支持LinearLayoutManager垂直或水平,但我使用的是GrildLayoutManager ,我使用drawables作为分隔GrildLayoutManager 。

在RecyclerView项目中替换片段

在我的RecyclerView中,我需要将部分项目替换为我的片段。 但只替换回收站视图中的第一项 。 我在做什么是错的? 我的容器(在回收商视图项目中): … … 我在RecyclerView适配器中的更新代码: … @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { … MyFragment fragment = MyFragment.newInstance(“fragment1”); fragmentManager.beginTransaction().replace(R.id.container, fragment).commit(); … } …

RecyclerView onClickListener

因此,经过5个月的web开发,我需要回到android,但我注意到我的一些旧代码不再工作了。 我有一个带有数据适配器的RecyclerView,但项目的onClickListener没有响应任何内容。 这就是我的代码: public class ProjectAdapter extends RecyclerView.Adapter { private List itemsData; OnItemClickListener mItemClickListener; public ProjectAdapter(List itemsData) { this.itemsData = itemsData; } // Create new views (invoked by the layout manager) @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new views View itemLayoutView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_layout, parent, false); // create ViewHolder ViewHolder […]