Articles of android recyclerview

RecyclerView添加EmptyView

我正在尝试在我的RecyclerView Adapter上实现一个EmptyView但我没有得到任何结果。 我已经按照本教程和这个提示 ,但没有人为我工作。 我实施了: if (viewType == EMPTY_VIEW) { v = LayoutInflater.from(parent.getContext()).inflate(R.layout.empty_view, parent, false); EmptyViewHolder evh = new EmptyViewHolder(v); return evh; } v = LayoutInflater.from(parent.getContext()).inflate(R.layout.data_row, parent, false); ViewHolder vh = new ViewHolder(v); return vh; 但是它不允许我编译,因为它们是不同的ViewHolder ,因为我创建了两个ViewHolder类,但它们extends Recycler.ViewHolder所以我没有得到它… 我正在尝试这样做,因为我有一个SearchView ,我希望当列表为空时它显示一个EmptyView ,我已经让它以编程方式进行,但我更喜欢添加像layout因为我不知道很多如何以编程方式放置TextViews和Buttons 。 如果我放 return dataList.size() > 0 ? dataList.size() : 1; 它给了我错误,因为索引是0。 我已经调试了viewType并且始终为1,那么它将不会加入if条件… 深入Android我发现了这个: /** […]

无法在Recyclerview上播放video

我在RecyclerView中有一个VideoView。 我想最终有一个可在Recyclerview上播放的video列表。 我决定从一个video开始,然后继续制作多个video。 我似乎无法在Recyclerview中播放一个video。 当我在手机上启动应用程序时,我得到的只是进度条。 由于某种原因,永远不会调用onPrepared函数。 这是我的代码。 RecyclerActivity.java import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.view.Menu; import android.view.MenuItem; import android.support.v7.widget.RecyclerView; public class RecyclerActivity extends ActionBarActivity { private RecyclerView mRecyclerView; private RecyclerView.Adapter mAdapter; private RecyclerView.LayoutManager mLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycler); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); mRecyclerView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); mAdapter = […]

更新后渲染预览中的Android Studio 2.2.2错误“无法find模式0”

我将Android Studio更新到版本2.2.2,之后我将compileSdkVersion和buildToolVersion更改为25.0.0和appcompat-V7:25.0.0 ,现在我无法构建项目并完美地运行项目但是在渲染活动期间出现错误包含RecyclerView 。 这里是错误细节: java.lang.IllegalStateException:无法在android.view.Display.getRefreshRate上的android.view.DisplayInfo.getMode(DisplayInfo.java:445)的android.view.DisplayInfo.findMode(DisplayInfo.java:458)中find模式0(在android.view.View.StartsAispachedAttachedToWindow(ViewGroup)的android.view.View.dispatchAttachedToWindow(View.java:15392)的android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392)上显示.java:648) .java:2953)在android.view.ViewGroup上的android.view.ViewGroups.DispatchAttachedToWindow(ViewGroup.java:2960)以及android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)上的android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)在com.android.layoutlib.bridge.Bridge.createSession(桥上的com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)的android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42) .java:429)在co.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)at co m.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:548)位于com.intellij.openapi的com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:533)。 application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)位于com.android.tools.idea.rendering.RenderTask.lambda $的com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)在java.util.concurrent的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)的java.util.concurrent.FutureTask.run(FutureTask.java:266)中膨胀$ 53(RenderTask.java:659)。 ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745) 有没有人遇到同样的问题? 任何解决方案!?

我应该在哪里将setOnClickListener放在RecyclerView适配器中

在互联网上的教程中,他们在RecyclerView的Adapter中设置了OnClickListener,它们以两种方式定义它:在ViewHolder内部或在BindViewHolder内部。 我的问题是哪一个是更好的方法,请推荐任何其他方法(如果有的话) 1)在ViewHolder中: public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); tvSrc = (TextView) itemView.findViewById(R.id.tvSrc); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(), “inside viewholder position = ” + getAdapterPosition(), Toast.LENGTH_SHORT).show(); } }); } 2)在BindViewHolder中 public void onBindViewHolder(DisplayTrainsAdapter.ViewHolder viewHolder, final int position) { viewHolder.tvSrc.setText(mDataset.get(position).strSrc); viewHolder.tvSrc.setOnClickListener(new View.OnClickListener() { @Override public […]

animationRecyclerView无法正常工作

我试图用animation制作一个简单的例子RecyclerView,但默认animation不起作用。 这是为什么? 这里缺少什么? 主要活动: public class MainActivity extends Activity { List songsList; RecyclerView recyclerView; MyAdapter myAdapter; RecyclerView.LayoutManager layoutManager; Song song1; Song song2; Song song3; Song song4; Song song5; Song song6; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); songsList = new ArrayList(); song1 = new Song(); song1.setName(“Label1”); song1.setAuthor(“Author1”); song1.setId(1); song2 = new Song(); song2.setName(“Label2”); song2.setAuthor(“Author2”); […]

RecyclerView的对讲function不太好

我现在使用RecyclerView而不是ListView来构建一个旨在帮助盲人的Android应用程序。 问题是当我启动对讲function时,读者逐个读取列表,我无法通过我的手势控制读者跳转到下一个或前一个项目。 我能做的就是等待读者到达我需要的那个。 我的测试手机是三星S4。 根据我同事的经验,对讲function适用于普通ListView上的手势。 现在我只是想知道它是RecyclerView API中的一个错误吗? 或者设置或代码有问题? 无论如何,我会继续测试它。

如何从android中的recyclerView中删除项目

在我的应用程序中,我应该使用recyclerView并删除一些项目。 我想从recyclerview删除一些项目,为此我在Adapter中编写下面的代码: public class MyAdapter extends RecyclerView.Adapter { private Context context; private List model; public MyAdapter (Context context, List model) { this.context = context; this.model = model; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_tv_tonight, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(MyAdapter.ViewHolder holder, final int position) { […]

在RecyclerView中更改不同视图的布局管理器

我实现了一个可扩展的recyclerview,其子元素是列表的一部分。 我按照这个代码 。 这是它的工作原理, 使用RecyclerView实现ExpandableListView简要描述如下。 列表模型有一个附加参数“type”,用于标识项目是标题还是子项。 通过检查此参数,适配器会扩展与该types对应的视图和视图。 如果types是HEADER,它将膨胀标题项的布局,其中包含TextView和ImageView,用于指示子树是否展开。 现在,我想要做的是使扩展的布局成为网格。 我通常会通过将布局管理器设置为GridLayoutManager来执行此操作,但在这种情况下,我只使用一个recyclerview,这意味着我无法在不更改标题的情况下更改布局管理器,最终导致整个recyclerview变为网格包括标题。 我的问题是:如何更改适配器内部几个布局的布局管理器? 编辑:我添加了一些代码。 Recyclerview适配器: public class ExpandableListAdapter extends RecyclerView.Adapter { // These are constants that are used to determine if the item is a child or a header and is defined with each item from the data model public static final int HEADER = 0; public […]

如何根据类别实现带有节头的RecyclerView?

我想在列表中实现部分。 我有一份任务清单。 List有一个自定义适配器,它扩展了recyclerview刷卡适配器,因为我已经实现了向recyclelerview的滑动手势。 因此,现在任务列表与已完成和待处理任务一起显示。 每个列表项都有一个checkbox,显示任务已完成或待处理。 如果选中checkbox,则任务完成,反之亦然。 现在我想用标题创建两个部分。 一个用于已完成的任务,另一个用于待处理任 所以完成的任务应该显示在已完成的部分内,反之亦然。 此外,如果任务未经检查,即待处理,如果用户选中checkbox,则该项目应从待处理部分中删除,并应添加到已完成的部分,反之亦然。 我检查了一个库的部分。 https://github.com/afollestad/sectioned-recyclerview 但是当我尝试实现库时,我得到了错误,即适配器无法扩展两个类,因为之前我已经扩展了recyclelerview swipe库。 适配器: public class IAdapter extends RecyclerSwipeAdapter { public ArrayList items; Context conext; public int _mId; List itemsPendingRemoval = new ArrayList(); public IAdapter(Context context, ArrayList item) { this.conext=context; this.items=item; } @Override public int getItemCount() { return items.size(); } public static class ItemViewHolder […]

选择RecyclerView中的所有checkbox

如何选择recyclerView?所有checkboxrecyclerView? 我尝试这样做: 在适配器中: public void selectAll(){ Log.e(“onClickSelectAll”,”yes”); isSelectedAll=true; notifyDataSetChanged(); } @Override public void onBindViewHolder(ViewHolder holder, int position) { PersonDTO item = dataSet.get(position); holder.tvName.setText(item.getName()); if (!isSelectedAll) holder.cbSelect.setSelected(false); else holder.cbSelect.setSelected(true);} 在layout Activity我有一个带onClickListener的button : private void onClickSelectAll(View view) { getSelectPersonsAdapter().selectAll(); }