我希望做一次性工作,从我的适配器和我的自定义列表中获取前三个对象。用它做一些逻辑,因此我从OnBindViewHolder访问 位置
但是当我访问它并执行我的逻辑时,它会在我的recyclelerview中产生重大延迟,尤其是在滚动时
if (position == 0) {
holder.mGoldTrophy.setVisibility(View.VISIBLE);
} else if (position == 1) {
holder.mSilverTrophy.setVisibility(View.VISIBLE);
} else if (position == 2) {
holder.mBronzeTrophy.setVisibility(View.VISIBLE);
}
当我删除此代码时,它会顺利运行
编辑:我试图删除位置&立即设置可见性,它也导致滞后,所以我认为这将是我的布局问题
<FrameLayout
android:layout_width="65dp"
android:layout_height="65dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/ID_image_upload_photoOfTheUser"
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/hey"
app:civ_border_width="2dp"
app:civ_border_color="#FF000000" />
<!--It can be 30dp & 36dp-->
<ImageView
android:id="@+id/ID_my_talent_golden_trophy"
android:visibility="gone"
android:src="@drawable/golden_trophy"
android:layout_width="40dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
<ImageView
android:id="@+id/ID_my_talent_silver_trophy"
android:visibility="gone"
android:src="@drawable/silver_trophy"
android:layout_width="40dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
<ImageView
android:id="@+id/ID_my_talent_bronze_trophy"
android:visibility="gone"
android:src="@drawable/bronze_trophy"
android:layout_width="40dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" />
</RelativeLayout>
</FrameLayout>
答案 0 :(得分:0)
代码没有任何问题,问题在于图像,我使用了非常大的图像而没有调整大小,因此在使用它时显示出很多延迟。
解决方案是将我的drawable的大小更改为更小的尺寸
我使用Android Asset Studio来修正此错误,并且运行平稳时效果很好,感谢您的时间。