我在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性能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)