Articles of android recyclerview

如何以编程方式设置recyclerview的高度?

我试过了, recyclerview.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,100)); 但它不起作用。

使用RecyclerView和卡

我有一些带有卡片物品的RecyclerView。 在preLollipop设备上它看起来很好。 但是在Lollipop上,它看起来没有任何子卡之间的间隔。 我试图使用保证金和填充,但它没有帮助。 当我在棒棒糖上使用保证金时,它看起来很好,但是在preLollipop间距相同的余量非常大。 再一次:为什么会有不同的间距? 我应该使用哪个属性来修复它?

如何禁用回收器视图滚动以便它侦听Scrollview布局?

我在ScrollView中有一个回收站视图。 我想禁用回收器视图滚动,以便它侦听其父布局,一个ScrollView!

我希望我的RecyclerView不回收一些物品

我正在使用内部具有异构视图的RecyclerView , 如本教程中所示 。 我在RecyclerView里面有一些物品也是RecyclerViews。 难以想象? 假设我想要复制Play商店的布局:一个具有垂直线性布局的大型RecyclerView,并由许多元素填充:单个应用程序和应用程序轮播。 如果要添加的项目是单个应用程序的布局,则将使用ID 1,我将添加单个项目的布局。 另外,如果我需要添加一个Carousel,那么我将在主RecyclerView中添加一个元素:另一个带有自己的适配器的RecyclerView。 这非常有效。 除非您滚动主RecyclerView。 为什么? 因为某些视图在不再可见时被销毁,然后在onBindViewHolder()方法中重新创建。 为什么在这? 因为主RecyclerView的适配器正在传递位置X,然后调用OnBindViewHolder() 。 然后,后者创建一个具有自己的适配器的新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); } 任何帮助解决问题或理解为什么会发生这种情况的见解将不胜感激。 如有需要,请询问更多信息。 谢谢! 问题的另一个截图。 (截图后只添加了浅绿色框) 屏幕底部有一个无意识的白框。