Articles of android recyclerview

Android数据绑定:RecyclerView适配器的可观察列表

通过使用新数据绑定库和MVVM模式中的ObservableList类来避免使用Adapter类中的”notifyItem(s)…”方法,它们是一种方法吗? 或者如果不是,将ObservableList绑定到RecyclerView最简单方法是什么? 感谢任何线索!

我应该在哪里取消绑定ViewHolder中的ButterKnife 8.xx?

我有一个使用ButterKnife注释的RecycleView.ViewHolder类。 我的代码也应该在这个ViewHolder类中取消绑定()吗? public class AView extends RecyclerView.ViewHolder { @BindView(R.id.a_text_view) TextView aText; public AView(final View view) { super(view); ButterKnife.bind(this, view); // It returns an Unbinder, but where should I call its unbind()? } } 文档( http://jakewharton.github.io/butterknife/ )没有讨论这个问题。

RecyclerView + CardView +触摸反馈

当有人在RecyclerView内部时,有没有人解决了没有触摸反馈的CardView之谜? 我有一个带有一堆CardViews(一个CardList )的RecyclerView 。 当我点击任何CardView时,我开始另一个活动。 这工作得很好,但是当我点击CardView时,我看不到任何触摸反馈。 及时,我已经使用以下方法配置了我的CardView(XML): android:clickable=”true” android:background=”?android:selectableItemBackground” 谢谢!

为什么ViewHolder上的OnClickListener不起作用?

我正在尝试实现一种在RecyclerView上处理项目选择的方法。 我个人不喜欢在通过手势的一些答案中建议的方式,我认为实现一个OnClickListener ,正如这里和这里所建议的,是更清洁。 事实是……这种模式实际上并不起作用! 我真的无法理解为什么我的OnClickListener.onClick 永远不会被调用。 它有点像另一种方法拦截点击之前onClick可以处理它。 这是我的代码: public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView tvName; ImageView star; public ViewHolder(View itemView) { super(itemView); tvName = (TextView) itemView.findViewById(R.id.CHAT_ITEM_name); star = (ImageView) itemView.findViewById(R.id.CHAT_ITEM_star); Fonts.setTypeface(tvName, regular); } @Override public void onClick(View view) { int position = getLayoutPosition(); select(position); } } 不幸的是,能够访问整个数据集中被点击项目的位置非常重要,以便将其删除,所以做一些像indexOfChild这样的事情也是不可接受的:我试过,但是这个方法给你的位置列表的visibile部分中的项目,从而使list.remove(position)不可能。

如何在项目animation的持续时间内禁用RecyclerView项目装饰图

我有一些基本的项目装饰,它在ItemDecoration.onDrawOver方法中绘制一些东西。 此RecyclerView还设置了DefaultItemAnimator 。 animation正在发挥作用,一切都很棒。 除了一件事。 当所有现有项目与此适配器中设置的新项目交换时,animation正在运行时正在显示装饰。 我需要一种隐藏它们的方法。 当animation结束时,需要显示它们,但是当它运行时,它们必须被隐藏。 我尝试了以下方法: public void onDrawOver(…, RecyclerView.State state) { if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) { return; } // else do drawing stuff here } 但这没有帮助。 装饰仅在短时间的animation中被删除,但在它仍在运行时再次出现。 另外,安装程序包括一个RecyclerView.Adapter ,它具有SetIds()(如果该位很重要)。

Android Robolectric点击RecyclerView项目

有没有办法模拟使用Robolectric点击RecyclerView项目? 到目前为止,我已尝试在RecyclerView的第一个可见位置获取View ,但这始终为null 。 它的getChildCount()保持返回0 ,并且findViewHolderForPosition始终为null 。 适配器从getItemCount()返回一个非0数字getItemCount()适配器中肯定有项目)。 我正在使用Robolectric 2.4 SNAPSHOT。

是否可以像在ListView中一样在回收视图中设置CursorAdapter?

到目前为止我没有谷歌解决方案来替换我的项目中的listview,因为我需要使用与sqlite链接的游标。 老方法如下: listview.setAdapter(cursorAdapter)这样,我可以得到光标来处理数据库中的数据 但是现在, recycleview.setAdapter(recycleview.adapter)它无法识别扩展BaseAdapter的适配器 所以任何人都可以帮我一臂之力?

android recyclerview不显示项目

我想在我的recyclerview中显示这些项目,但它根本没有显示,我看不到错误。 也许你们可以帮助我。 MainActivity.java RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rec); List list = new ArrayList(); recyclerView.setHasFixedSize(true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); MenuRecAdapter menuRecAdapter = new MenuRecAdapter(list); recyclerView.setAdapter(menuRecAdapter); RecyclerView适配器: public class MenuRecAdapter extends RecyclerView.Adapter{ private List mList; Activity context; public MenuRecAdapter(List mList){ this.mList = mList; } public int getItemCount(){ return mList.size(); } public RecViewHolder onCreateViewHolder(ViewGroup viewGroup, int […]

垂直滚动列表与水平可滚动行的循环器视图

我想要一个RecyclerView,其中我们有垂直可滚动的项目列表。 从这个可滚动的项目列表中,一些应该具有在水平方向上滚动的能力。 如下图所示 任何人都可以指导我怎么做? 谢谢。

图像适配器泄漏内存

我有一个简单的ListActivity来显示图像,我在ImageAdapter类的构造函数中为Picasso Builder提供了我的OkHttpClient: picassoClient = new OkHttpClient(); picassoClient.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request newRequest = chain .request() .newBuilder() .addHeader(“Cookie”,”xyz”) .build(); return chain.proceed(newRequest); } }); new Picasso.Builder(context).downloader(new OkHttpDownloader(picassoClient)).build(); 然后在getView()使用Picasso在ImageView中加载图像: Picasso.with(context).load(xyzUrl).fit().centerCrop().into(vImage); 它工作得很好,但是在设备的旋转上,我看到堆大小有时会慢慢增长,有时很快,有时会保持稳定。 它很少掉落。 我泄漏内存还是代码有问题? 编辑:我在getView()调用Picasso后插入此代码 if (BuildConfig.DEBUG) { Log.i(“HEAP SIZE”, String.valueOf((Runtime.getRuntime().totalMemory() / 1024) – (Runtime.getRuntime().freeMemory() / 1024))); } 我发现在将位图加载到ImageView之后,堆大小的增长发生在getView() 。 哪里不对? 编辑2 […]