RecyclerView.ViewHolder น setIsRecyclable()func

0

คำถาม

ฉันต้องการเพื่อใช้ตั้งค่าของมุมมองโฮล์เดอร์ต้องไม่ recycle นี่คือรหัส:

@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
    viewHolder.setIsRecyclable(false);
}

อย่างไรก็ตามเมื่อฉันเห็นเอกสารได้ที่นี่: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder#setIsRecyclable(boolean)มันเขียนว่า setIsRecycleable()ควรจะต้องจับคู่และฉันไม่มีความคิดเกี่ยวกับเรื่องนี้ มีใครได้ให้เป็นตัวอย่างรหัสสำหรับคดีนี้? ตอนที่ฉันควรจะโทรหา setIsRecyclable(เรื่องจริง)อีกครั้ง? ขอบคุณ

enter image description here

3
0

ไม่ใช่ถังที่ ViewHolder แค่หมายความว่าเจาะจง ViewHolder จะ retained และไม่กเขียนทับตอนที่มีข้อมูลใหม่เพื่อให้พวกปัญหากับมันเป็น Adapter จะต้องป้อนอีก ViewHolder เพื่อทำให้สำหรับคนที่ไม่สามารถ reuse.

นั่นคือเหตุผลว่าทำไมฉันต้องสุดท้ายแล้วปล่อยให้มัน recycle i.e. setIsRecycleable(true) เพราะมันค่อนข้างจะ defeats จุดประสงค์ของ RecyclerView ถ้ามันต้องมีเพื่อสร้างมุมมองใหม่เพื่อเป็นตัวแทนของข้อมูลออกมา

เป็นเหตุผลที่คุณอาจจะอยากเปิดออกจาก recycle คือการหลีกเลี่ยง interruptions,บางที ViewHolder เล่นเป็นการเคลื่อนไหวหรือกำลังโหลดวิดีโออยู่ เมื่อมันเสร็จคุณแล้วเปิด recycle เพื่อปลดปล่อย ViewHolder เพื่อให้แน่ใจว่ามันสามารถถูกใช้ได้อีกแล้ว

2021-11-24 06:12:08
0

มันจะดีกว่าต้องใช้ Listview ในคดีนี้ ทั้งความหมายของ recyclerview คือต้อง recycle มุมมอง นอื่นเห็นมันโพสต์ https://stackoverflow.com/a/36275862/3094367

2021-11-24 06:03:40
0

อันที่จริง recycle คือเกี่ยวข้องกับ viewType.
คุณเพิ่งเปลี่ยนทุก itemType เป็นพิเศษ
เหมือน:

@Override
public int getItemType(int position){
    return position
}
2021-11-24 06:28:44

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................