Articles of android recyclerview

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 […]

在RecyclerView中替代registerDataSetObserver()

在listView中,要监听适配器数据集中的更改,我使用 adapter.registerDataSetObserver(new DataSetObserver() { @Override public void onChanged() { super.onChanged(); } }); 但我很难find一个在RecyclerView中完成类似工作的function。 如何在RecyclerView.Adapter的情况下实现?

为什么在RecyclerView.ViewHolder中使用static

如果我在onCreateViewHolder方法上创建此类的新实例,并且我猜这个实例用于每个项目,为什么建议对从RecyclerView.ViewHolder扩展的class使用static : @Override public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclerview,parent,false); return new RecyclerViewAdapter.RecyclerViewHolder(view); } @Override public void onBindViewHolder(RecyclerViewHolder holder, int position) { String textTop = noticias.get(position).getHora()+ noticias.get(position).getTemperatura(); holder.textViewTop.setText(textTop); holder.textViewBot.setText(noticias.get(position).getTexto()); } public static class RecyclerViewHolder extends RecyclerView.ViewHolder{ public TextView textViewTop; public TextView textViewBot; public RecyclerViewHolder(View view){ super(view); textViewTop = (TextView) view.findViewById(R.id.textView4); textViewBot […]

当关闭过度滚动时,RecyclerView没有滚动条

我试图避免RecyclerView上的过度滚动阴影。 但是,似乎添加android:overScrollMode=”never”会产生隐藏RecyclerView中存在的任何垂直和水平滚动条的副作用。 有没有人知道如何在避免过度滚动阴影的同时显示滚动条?

如何在RecyclerView中显示ArrayList?

我需要添加一个Activity ,我可以在其中列出ArrayList的元素,我看到有一种更新,更好的方法来显示列表RecyclerView 。 我的问题是如何将这个实现到我的应用程序中。 我发现我需要使用Adapter ,但我不太明白如何正确实现整个过程。 如果您想知道,我指的是我一直在阅读的文档示例。 编辑: 更新了我的代码后,它说它无法解析符号setOnEntryClickListener : public class voting extends Activity { RecyclerView myList; private ArrayList players; // Players @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_voting); Intent intent = this.getIntent(); Bundle bundle = intent.getExtras(); players = (ArrayList)bundle.getSerializable(“PLAYERS”); myList = (RecyclerView) findViewById(R.id.charactersList); myList.setLayoutManager(new LinearLayoutManager(this)); CoursesAdapter adapter = new CoursesAdapter(players); myList.setAdapter(adapter); } […]