Articles of android recyclerview

Android:设置为可点击的块onTouch事件时的RecyclerView项

看起来像将RecyclerView的项目布局设置为clickable =“true”,完全消耗一些触摸事件,特别是MotionEvent.ACTION_DOWN(事后ACTION_MOVE和ACTION_UP正在工作): item.xml <– this what breaks touch event ACTION_DOWN …. 在onCreate()中具有非常基本的RecyclerView设置: RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list); … //Standard recyclerView init stuff //Please note that this is NOT recyclerView.addOnItemTouchListener() recyclerView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { Log.d(“”, “TOUCH — ” + motionEvent.getActionMasked()); //Will never get here ACTION_DOWN when item set to […]

在中央选择水平Scrollview的RecyclerView上不工作Notifydatasetchange?

自动滚动存在问题,并且使用代码很难移动到某个特定位置。 我使用水平滚动和中心选择使两个recyclerView相互依赖。 所以我的问题是使用Notifydatasetchanged的方法并将recyclerView postion重置为0并且它的滚动选择范围因为它返回了错误的索引… 当我想在更改数据后获得中心选择索引。 我正在使用下面的示例通过一些编辑实现此目的。 滚动时获取RecycleView的中心可见项 我需要将第一个recyclelerView适配器滚动的数据更改为第二个RecyclerView适配器,并更改数据。 但是scrollview设置位置在第一个位置我尝试了notifyItemRangeChanged(int,int)notifyItemRangeInserted(int,int)方法…… 详细说明:我正在更改types并重置Look scrollview的值。 我需要更改底部scrollview的选定位置。 特别是我不能通过改变数据来获得中心位置。 意味着如果我通知适配器而不是索引将保持不变。 重置数据后,我需要像普通适配器一样工作。 提前致谢。 public void getRecyclerview_Type() { final RecyclerView recyclerView_Type = (RecyclerView) findViewById(R.id.recycleView); if (recyclerView_Type != null) { recyclerView_Type.postDelayed(new Runnable() { @Override public void run() { setTypeValue(); } }, 300); recyclerView_Type.postDelayed(new Runnable() { @Override public void run() { // recyclerView_Type.smoothScrollToPosition(Type_Adapter.getItemCount() – 1); […]

以全长的方式截取RecyclerView的屏幕截图..每个项目都有一个列表

我正在使用具有动态大小列表的recyclerView …当我使用此方法截取每个recyclerView项目的屏幕截图时…它截取屏幕截图但每个项目仅包含一个列表项目..即使列表项目size > 1 。 public static Bitmap getRecyclerViewScreenshot(RecyclerView view) { int size = view.getAdapter().getItemCount(); RecyclerView.ViewHolder holder = view.getAdapter().createViewHolder(view, 0); view.getAdapter().onBindViewHolder(holder, 0); ArrayList bitmaps=new ArrayList(); holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); holder.itemView.layout(0, 0, holder.itemView.getMeasuredWidth(), holder.itemView.getMeasuredHeight()); Bitmap bigBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), holder.itemView.getMeasuredHeight() * size, Bitmap.Config.ARGB_8888); Canvas bigCanvas = new Canvas(bigBitmap); bigCanvas.drawColor(Color.WHITE); Paint paint = new Paint(); int iHeight = […]

RecyclerView使用下面的视图轻扫但不检测点击

我有这样的RecyclerView行布局 我正在使用ItemTouchHelper来处理前景视图上的滑动(部分) @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { adapter.onItemSwiped(viewHolder); } @Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { View foregroundView = ((myViewHolder)viewHolder).getForegroundView(); getDefaultUIUtil().onDraw(c, recyclerView, foregroundView, dX, dY, actionState, isCurrentlyActive); //getSwipeLimit() used below returns the width of the delete icon float translationX = Math.min(-dX, […]

无法解决:com.android.support:cardview-v7:26.0.0 android

我尝试将recyclerview添加到我的项目并出现此错误,我从android studio依赖项添加它

使用Exoplayer流式传输video列表

我想实现流式video列表应用。 我使用RecyclerView来显示我的列表项。 项目types包括4种types:文章,状态,照片和video。 我们应该只关注videotypes。 这是我的RecyclerView适配器的代码: public class FollowedPostAdapter extends RecyclerView.Adapter implements OnFollowTagCallback, OnLikeCallback { private Context context; private List newsFeedList; public RecyclerView recyclerView; public LinearLayoutManager linearLayoutManager; private HashMap playerList; private int visibleThreshold = 5; // private int previousTotal = 0; private int visibleItemCount, firstVisibleItem, totalItemCount; private boolean loading; private OnRecyclerViewLoadMoreListener loadMoreListener; private final String text_comment; […]

当列数发生变化时,animation回收器查看网格

我正在使用带有GridLayoutManager的RecyclerView 。 用户可以在2到4之间切换跨度计数,这将导致animation将每个单元格的内置翻译animation运行到其新位置。 我到目前为止使用的代码是: TransitionManager.beginDelayedTransition(moviesGridRecycler); gridLayoutManager.setSpanCount(NEW_SPAN_COUNT); adapter.notifyDataSetChanged(); 这对我来说一直很好,但现在我需要为每个跨度计数设置不同的布局。 为了支持这一点,我在RecyclerView有2种视图types,并且由于在移动到新的跨度计数时视图types已更改,因此RecyclerView无法看到它是“相同”内容,并且未运行默认的转换animation。 如果我启用布局转换,我会获得视图输入animation,而不是查看位置更改animation。 两个跨度计数的单元格视图的宽度和高度为match_parent和wrap_content 。 作为替代方案,我尝试将所有新视图types放在一起,只有一种视图types。 我有一个FrameLayout ,它保存两个跨度计数的视图。 在onBindViewHolder() ,我只是切换子视图的可见性。 这也导致没有animation。 我跟着这个post和这个 ,但无法解决我的问题。 完整代码: class ItemFragment : Fragment() { private var spanCount = 2 lateinit var recyclerView: RecyclerView lateinit var button: Button override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_item_list, container, false) […]

RecyclerView仅在向下和向上滚动时刷新项目

我正在使用电影项目进行简单的回收查看。 当我尝试添加新项目时,它们不会立即显示在recyclerview中。 出于某种原因,我必须向下滚动以便第一个项目消失,然后再次向上显示要显示的新项目(它在索引0处添加)。 适配器: public class MovieCardAdapter extends RecyclerView.Adapter { List movieList; public MovieCardAdapter(final List movieList) { this.movieList = movieList; } public void addItem(int position, final Movie movie){ movieList.add(position,movie); notifyItemInserted(position); } public void removeItem(final Movie movie){ final int indexOf = movieList.indexOf(movie); movieList.remove(movie); notifyItemRemoved(indexOf); } public void updateItems(final List items){ movieList = items; notifyDataSetChanged(); } @Override […]

如何在另一个recycleview适配器下的recycleview适配器?

我有一个RecyclerView 。 它有一个自定义布局,在自定义布局内是另一个RecyclerView 。 当我通知回收站视图项目已被删除时,我的主回收站视图已更新,但我的自定义视图回收视图未收到通知。 SwipeDismissRecyclerViewTouchListener listener = new SwipeDismissRecyclerViewTouchListener.Builder( recyclerView, new SwipeDismissRecyclerViewTouchListener.DismissCallbacks() { @Override public boolean canDismiss(int position) { return true; } @Override public void onDismiss(View view) { // Do what you want when dismiss int id = recyclerView.getChildAdapterPosition(view); databaseHelper.deleteSingleItem(cartAdapter.cartItemName.get(id)); Log.e(TAG, “onDismiss: ” + subdata.get(id) + ” ” + data.get(id)); subdataprice.remove(id); subdata.remove(id); addonlist.remove(id); price.remove(id); […]

如何在Android中的recyclerView中处理多个布局点击

在我们的应用程序中,我们有消息列表。 我们正在切换到RecyclerView 。 我们的消息可以包括文本,图像。 示例消息可能如下所示。 要处理点击,请使用此类: public class RecyclerViewItemClickListener implement RecyclerView.OnItemTouchListener { public static interface OnItemClickListener { public void onItemClick(View view, int position); public void onItemLongClick(View view, int position); } private OnItemClickListener mListener; private GestureDetector mGestureDetector; public RecyclerViewItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) { mListener = listener; mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { […]