Articles of android recyclerview

Android – 添加视图到图像不会更新 – onClick

概要 当用户点击RecyclerView项目时,我想根据存储在BaaS [Sashido](X坐标,Y坐标和标记名称)中的信息向该图像添加标签。 但是,我遇到的问题是没有得到这个位置。 单击图像时创建一个Toast,它显示与视图本身对应的正确位置。 (开头为零,依此类推) 但是一旦用户点击列表中的另一个项目,如何更新位置,以便与Sashido数组中的位置相对应的标记与RecyclerView中的位置匹配,因为此时Sashido类中的第一行用该行的标签填充所有图像。 我的假设是使用getLayoutPosition()将位置传递给getTagInformation()方法,这样当getLayoutPosition() objects.get(position)数组时,它将获得Sashido类的相同位置,但事实并非如此。 我觉得在用户点击新项目后,必须不能正确更新适配器。 onBindViewHolder: @Override public void onBindViewHolder(RecyclerViewHolderPreviousPosts holder, int position) { holder.bind(previousPostsList.get(position), listener); } onBind: void bind(final PreviousPostsDataModel model, final OnItemClickListener listener) { … uploadedImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (count == 0) { imageid = model.getImageId(); Toast.makeText(App.getContext(), “Image ID: ” + imageid, […]

Recyclerview同时绑定所有视图

我在另一个recyclerview(使用LinearLayoutManager )中有一个垂直的recyclerview(带有GridLayoutManager )。 我现在面临的问题是,内部的recyclerview(使用GridLayoutManager)同时绑定了它的所有项目,甚至是当前不在屏幕上的视图( onBindViewHolder()被调用所有项目)。 为了给你提供更多信息,在我的布局文件中,我将我的Recycler视图的高度设置为wrap_content 。 我认为问题是,因为有2个嵌套的垂直回收视图,当父RV想要测量它的子节点并且子节点是另一个RV时,在onMeasure()它计算整个RV所需的大小,而不仅仅是它的部分想要在屏幕上绑定。 知道怎么解决这个问题吗? 这是我的外部recyclerview的布局文件: 以下是我的内部回收者视图的代码: PS:我正在使用此适配器委托进行外部回收查看: https : //github.com/sockeqwe/AdapterDelegates

带有CardView的Android RecyclerView – 以堆栈forms显示卡片(不是列表)

我想使用Android支持v7库中的RecyclerView来显示一堆CardViews (也在v7支持库中),但不是在列表中显示它们(我可以向上/向下滚动)我想要将它们显示为堆栈(如卡堆栈)。 有谁知道我怎么能实现这种行为? 谢谢!!

如何使RecyclerView顺利滚动?

这更像是一个通用的问题,但经过大量的搜索和尝试,我无法理解为什么这么难以实现。 这是我能find的最接近的答案,但仍然无法实现。 具体来说,我正在使用RecyclerView和GridLayoutManager。 我想要的是平滑滚动的网格布局(如默认的gallary应用程序),没什么特别的,但网格布局管理器的默认实现以“生涩”的方式滚动视图。 我试图从上面的链接实现该方法,但没有成功。 我也尝试实现LinearSmoothScroller,但我不确定如何实现computeScrollVectorForPosition方法。 关于computeScrollVectorForPosition的Google文档字面上有0个字。 我find了这个3部分的教程 ,但它没什么帮助。 所以,我想问的是:我们可以在LinearSmoothScroller中实现某种模板代码,还是扩展RecyclerView.SmoothScroller并实现平滑滚动? 即使代码依赖于gridlayout中每行的项目数和项目数,也必须有一些方法可以轻松完成。 我在这里错过了什么吗?

滚动回收站视图时如何防止项目重复

我在回收器视图内部创建了一行,在内部我已经膨胀了两行或更多但是当我滚动时,项目再次被使用。 我没有得到回收视图的地方或动态删除它我需要一个提要和他们的评论。对于评论我需要膨胀布局,以显示创建getCommentInflaterView方法的feed下面。 但是使用getCommentInflaterView()创建的视图会重复。 MyAdapterClass: public class AllFeedsAdapter extends RecyclerView.Adapter { ArrayList arrayListAllFeedsData; Comment objComment; Context context; public AllFeedsAdapter(Context context, ArrayList data) { this.context = context; arrayListAllFeedsData = new ArrayList(); arrayListAllFeedsData = data; } @Override public AllFeedsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { Context context = parent.getContext(); LayoutInflater inflater = LayoutInflater.from(context); // Inflate the custom layout View […]

Android – 如果WebView可见额外的,buggus,View也是创建的

我有一个奇怪的错误:当我的RecyclerView中显示WebView时,屏幕上会出现一个新框(甚至在应用程序的边界之外)。 此框具有与WebView相同的尺寸,它出现在左下角(图像左下角的灰色框) 我将描述错误的上下文,因为我无法确定问题的根源。 仅在某些设备中发生。 示例:Android 6.0.1 w / Nexus 7.并且在具有相同版本的模拟器中不会发生。 视图/框未列在“Android设备监视器”“视图层次结构”的视图层次结构中 只有在RecyclerView中可见WebView才会发生。 没有其他观点有这个问题。 该框始终显示在屏幕的左下角(在图像中,您可以看到它位于屏幕上的后退按钮上) 该框并不总是可见。 它出现的大部分时间,有时会在滚动一点后消失(WebView仍然可见)。 我已禁用此细胞types的回收。 WebView是以XML格式创建的 。 数据加载: public static void textHtml(ChatViewHolder cvh, Message message) { cvh.webView.loadData(message.content, “text/html”, “UTF-8”); cvh.webView.setOnTouchListener((v, event) -> true); } 任何帮助解决问题或理解为什么会发生这种情况的见解将不胜感激。 如有需要,请询问更多信息。 谢谢! 问题的另一个截图。 (截图后只添加了浅绿色框) 屏幕底部有一个无意识的白框。

区分Recyclerview中的Drag动作和Fling动作

Recyclerview现在有3个州。 SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING, SCROLL_STATE_SETTLING 为此提出的问题包括一个投掷状态。我无法确定是否有任何关于此的事情。 有没有办法区分Recyclerview中的Drag和Fling。 编辑 :对此类function的要求:当用户徘徊时,我希望能够在回收者视图中暂停加载图像(所有图像都是url请求)并在他到达感兴趣的项目后恢复,从而确保他的图像是目前在其他人之前查看负载。

扩展类android.support.v7.widget.RecyclerView时出错

我正在尝试在我现有的项目中使用RecyclerView,构建没有错误,但在充气时没有find类似的RecyclerView类错误。 看不出我做错了什么。 谢谢你的帮助! //activity_main.xml //MainActivity.onCreate @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); ItemData itemsData[] = { new ItemData(“Help”,R.drawable.visa), new ItemData(“Delete”,R.drawable.sample), new ItemData(“Cloud”,R.drawable.sample), new ItemData(“Favorite”,R.drawable.sample), new ItemData(“Like”,R.drawable.sample), new ItemData(“Rating”,R.drawable.sample)}; // 2. set layoutManger recyclerView.setLayoutManager(new LinearLayoutManager(this)); // 3. create an adapter MyAdapter mAdapter = new MyAdapter(itemsData); // 4. set adapter recyclerView.setAdapter(mAdapter); // […]

Android – 如何动态更改Recyclerview高度?

我遇到了一个关于根据总物品更改Recycler高度的问题。 我试过的是使用这样的Layout Param: ViewGroup.LayoutParams params = myRecyclerView.getLayoutParams(); params.height = itemHeight * numberOfItem; myRecyclerView.requestLayout(); 要么 ViewGroup.LayoutParams params = new RecyclerView.LayoutParams(..WRAP_CONTENT, …WRAP_CONTENT);; params.height = itemHeight * numberOfItem; myRecyclerView..setLayoutParams(params); 但它没有用。 我该怎么做 ? 请帮帮我 !

如何在RecyclerView的列表边框外添加项目透明度?

如何使RecyclerView项目超出列表边界时能够顺利消失? 见下图。 所有可能的解决方案高度赞 注意:使用具有渐变背景(阴影模仿)的RecyclerView上方的View解决方案不能很好地工作,因为我在屏幕上有渐变背景 ,并且很难将“阴影”视图背景与屏幕背景相匹配,它看起来像这样: 所以,像阴影一样的工作不像消失。 更新:获得第二个屏幕,背景如下: 这是原始屏幕背景