android-非常滞后的RecyclerView性能

android-非常滞后的RecyclerView性能,第1张

概述我在ViewPager内部有一个RecyclerView实现,它的性能非常糟糕.Here’savideooftheperformanceinquestion.我有两种视图类型,并且正在使用ViewHolder模式(因此它不是通货膨胀或导致问题的视图).Here’stheadapter.这是cardview.xml文件<LinearLayoutxmlns:android="ht

我在VIEwPager内部有一个RecyclerVIEw实现,它的性能非常糟糕. Here’s a video of the performance in question.我有两种视图类型,并且正在使用VIEwHolder模式(因此它不是通货膨胀或导致问题的视图).

Here’s the adapter.

这是cardvIEw.xml文件

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:clipChildren="false"androID:orIEntation="vertical"androID:scrollbars="none"><linearLayout    androID:ID="@+ID/next"    androID:layout_wIDth="match_parent"    androID:layout_height="2dp"    androID:layout_marginBottom="8dp"    androID:elevation="8dp"    androID:orIEntation="horizontal" /><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/top"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:background="?attr/card_background"    androID:orIEntation="horizontal">    <linearLayout        androID:ID="@+ID/dots"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_alignParentBottom="true"        androID:layout_alignParentleft="true"        androID:layout_alignParenttop="true"        androID:background="?attr/activity_background"        androID:orIEntation="horizontal">    </linearLayout>    <VIEw        androID:ID="@+ID/dot"        androID:layout_wIDth="3dp"        androID:layout_height="match_parent"        androID:layout_alignParentBottom="true"        androID:layout_alignParenttop="true"        androID:layout_toRightOf="@ID/dots"        androID:background="#fff" />    <relativeLayout        androID:ID="@+ID/background"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:layout_toRightOf="@+ID/dot"        androID:orIEntation="vertical"        androID:paddingleft="8dp"        androID:paddingRight="8dp"        androID:paddingtop="8dp">        <include            androID:ID="@+ID/children"            layout="@layout/commentnumber"            androID:layout_wIDth="wrap_content"            androID:layout_height="16dp"            androID:layout_alignParentRight="true"            androID:layout_gravity="right"            androID:layout_marginBottom="-16dp"            androID:layout_marginleft="10dp"            androID:gravity="center_horizontal"            androID:orIEntation="horizontal" />        <com.wefika.flowlayout.FlowLayout            androID:ID="@+ID/flow"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_gravity="center_vertical"            androID:gravity="center_vertical"            androID:orIEntation="horizontal"            androID:paddingRight="10dp">            <TextVIEw                androID:ID="@+ID/author"                androID:layout_wIDth="wrap_content"                androID:layout_height="match_parent"                androID:gravity="center_vertical"                androID:layout_gravity="center_vertical"                androID:paddingRight="5dp"                androID:text="ccrama"                androID:textcolor="?attr/Font"                androID:textSize="?attr/Font_commentTitle"                androID:textStyle="bold"                />            <TextVIEw                androID:ID="@+ID/score"                androID:layout_wIDth="wrap_content"                androID:layout_height="match_parent"                androID:gravity="center_vertical"                androID:layout_gravity="center_vertical"                androID:paddingleft="5dp"                androID:paddingRight="5dp"                androID:text="+49"                androID:textcolor="?attr/Font"                androID:textSize="?attr/Font_commentinfo"                androID:textStyle="bold" />            <TextVIEw                androID:ID="@+ID/time"                androID:layout_wIDth="wrap_content"                androID:layout_height="match_parent"                androID:gravity="center_vertical"                androID:layout_alignParentRight="true"                androID:layout_gravity="center_vertical"                androID:paddingleft="5dp"                androID:paddingRight="5dp"                androID:text="4 hours ago"                androID:textcolor="?attr/Font"                androID:textSize="?attr/Font_commentinfo" />            <include                androID:ID="@+ID/gild"                layout="@layout/gilded"                androID:layout_wIDth="wrap_content"                androID:layout_height="16dp"                androID:layout_gravity="center_vertical"                androID:gravity="center_horizontal"                androID:orIEntation="horizontal"                androID:paddingleft="5dp"                androID:paddingRight="5dp" />            <include                androID:ID="@+ID/flairbubble"                layout="@layout/flair"                androID:layout_wIDth="wrap_content"                androID:layout_height="16dp"                androID:layout_gravity="center_vertical"                androID:layout_margin="5dp"                androID:layout_toRightOf="@+ID/pinned"                androID:paddingleft="5dp"                androID:paddingRight="5dp"                androID:src="@drawable/pinned" />            <include                androID:ID="@+ID/you"                layout="@layout/you"                androID:layout_wIDth="wrap_content"                androID:layout_height="16dp"                androID:layout_centerVertical="true"                androID:layout_gravity="center_vertical"                androID:layout_toRightOf="@+ID/pinned"                androID:paddingleft="5dp"                androID:paddingRight="5dp"                androID:src="@drawable/pinned" />            <include                androID:ID="@+ID/op"                layout="@layout/op"                androID:layout_wIDth="wrap_content"                androID:layout_height="16dp"                androID:layout_marginleft="4dp"                androID:layout_centerVertical="true"                androID:layout_gravity="center_vertical"                androID:layout_toRightOf="@+ID/pinned"                androID:paddingleft="5dp"                androID:paddingRight="5dp"                androID:src="@drawable/pinned" />        </com.wefika.flowlayout.FlowLayout>        <me.ccrama.redditslIDe.ActiveTextVIEw            androID:ID="@+ID/content"            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:layout_below="@+ID/flow"            androID:paddingBottom="8dp"            androID:textcolor="?attr/Font"            androID:textSize="?attr/Font_commentbody" />    </relativeLayout></linearLayout><linearLayout    androID:ID="@+ID/menu"    androID:layout_wIDth="match_parent"    androID:layout_height="48dp"    androID:layout_below="@+ID/background"    androID:orIEntation="horizontal"    androID:weightSum="4">    <ImageVIEw        androID:ID="@+ID/more"        androID:layout_wIDth="0dp"        androID:layout_height="48dp"        androID:layout_weight="1"        androID:background="?androID:selectableItemBackground"        androID:padding="12dp"        androID:src="@drawable/more"        androID:tint="?attr/tint" />    <ImageVIEw        androID:ID="@+ID/downVote"        androID:layout_wIDth="0dp"        androID:layout_height="48dp"        androID:layout_weight="1"        androID:background="?androID:selectableItemBackground"        androID:padding="12dp"        androID:src="@drawable/downVoteicon"        androID:tint="?attr/tint" />    <ImageVIEw        androID:ID="@+ID/upVote"        androID:layout_wIDth="0dp"        androID:layout_height="48dp"        androID:layout_weight="1"        androID:background="?androID:selectableItemBackground"        androID:padding="12dp"        androID:src="@drawable/upVoteicon"        androID:tint="?attr/tint" />    <ImageVIEw        androID:ID="@+ID/reply"        androID:layout_wIDth="0dp"        androID:layout_height="48dp"        androID:layout_weight="1"        androID:background="?androID:selectableItemBackground"        androID:padding="12dp"        androID:src="@drawable/reply"        androID:tint="?attr/tint" /></linearLayout><linearLayout    androID:ID="@+ID/replyArea"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:layout_below="@+ID/menu"    androID:orIEntation="vertical"    androID:padding="16dp">    <EditText        androID:ID="@+ID/replyline"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:backgroundTint="?attr/tint"        androID:hint="Reply"        androID:imeOptions="actionDone|flagNoEnteraction"        androID:inputType="textMultiline|textautoCorrect|textCapSentences"        androID:minHeight="30dp"        androID:textcolor="?attr/Font"        androID:textcolorHint="?attr/Font" />    <relativeLayout        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content">        <TextVIEw            androID:ID="@+ID/discard"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:background="?androID:selectableItemBackground"            androID:padding="4dp"            androID:text="disCARD"            androID:textcolor="?attr/Font"            androID:textSize="14sp"            androID:textStyle="bold" />        <TextVIEw            androID:ID="@+ID/send"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_alignParentRight="true"            androID:background="?androID:selectableItemBackground"            androID:padding="4dp"            androID:text="submit"            androID:textcolor="?attr/Font"            androID:textSize="14sp"            androID:textStyle="bold" />    </relativeLayout>    <linearLayout        androID:ID="@+ID/innersend2"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        androID:layout_gravity="center"        androID:layout_marginleft="-6dp"        androID:layout_marginRight="-6dp"        androID:Alpha=".56"        androID:gravity="center"        androID:orIEntation="horizontal"        androID:weightSum="8">        <Imagebutton            androID:ID="@+ID/imagerep"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/image"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/link"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/link"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/bold"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/bold"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/italics"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/italics"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/bulletList"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/bullets"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/numList"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/numbers"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/quote"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/quotes"            androID:tint="?attr/tint" />        <Imagebutton            androID:ID="@+ID/size"            androID:layout_wIDth="0dp"            androID:layout_height="48dp"            androID:layout_weight="1"            androID:height="48dp"            androID:background="#00000000"            androID:cropTopadding="false"            androID:padding="8dp"            androID:scaleType="fitCenter"            androID:src="@drawable/Fontsizedarker"            androID:tint="?attr/tint" />    </linearLayout></linearLayout>

删除除通货膨胀以外的所有适配器代码仍会导致明显的滞后.
我真的找不到这个的底部,非常感谢任何帮助/提示.

编辑:更多信息:删除数据集“隐藏”代码(getRealposition,hIDeAll,unhIDeAll)对RecyclerVIEw的速度没有影响.另外,删除FlowLayout不会使其更快.

解决方法:

我在RecyclerVIEw上遇到了同样的问题.太懒了.就我而言,RecyclerVIEw中有一个水平的图像按钮列表.

我通过从Imagebuttons或ImageVIEws中删除scaleType并通过大小调整为Picasso加载图像来解决了这个问题:

 Picasso.with(context).load(icon.get(position)).resize(270,270).centerCrop().into(holder.iconVIEw);

滞后问题可能是由于运行时缩放大尺寸图像而导致的.图片.不建议这样做.毕加索(Picasso)负责调整大小和有效加载.它还为您处理缓存.

总结

以上是内存溢出为你收集整理的android-非常滞后的RecyclerView性能全部内容,希望文章能够帮你解决android-非常滞后的RecyclerView性能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1094956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存