คำถามติดแท็ก android-recyclerview

วิดเจ็ต RecyclerView เป็น ListView และ GridView เวอร์ชันขั้นสูงและยืดหยุ่นขึ้น

21
รับรายการที่คลิกและตำแหน่งใน RecyclerView
ฉันกำลังแทนที่ของฉันListViewกับRecyclerViewรายการแสดง ok แต่ผมอยากจะทราบวิธีการรับรายการคลิกและตำแหน่งของมันคล้ายกับวิธีการที่เราใช้ในOnItemClickListener.onItemClick(AdapterView parent, View v, int position, long id)ListView ขอบคุณสำหรับไอเดีย!

11
ตรวจจับเมื่อ RecyclerView มาถึงตำแหน่งล่างสุดขณะที่เลื่อน
ฉันมีรหัสนี้สำหรับ RecyclerView recyclerView = (RecyclerView)rootview.findViewById(R.id.fabric_recyclerView); recyclerView.setLayoutManager(layoutManager); recyclerView.addItemDecoration(new RV_Item_Spacing(5)); FabricAdapter fabricAdapter=new FabricAdapter(ViewAdsCollection.getFabricAdsDetailsAsArray()); recyclerView.setAdapter(fabricAdapter); ฉันต้องการทราบเมื่อ RecyclerView มาถึงตำแหน่งล่างสุดขณะที่เลื่อน เป็นไปได้ไหม ? ถ้าใช่อย่างไร

6
การเพิ่ม Ripple Effect ให้กับรายการ RecyclerView
ฉันพยายามเพิ่ม Ripple Effect ให้กับรายการของ RecyclerView ฉันดูทางออนไลน์ แต่ไม่พบสิ่งที่ต้องการ ฉันคิดว่ามันต้องเป็นเอฟเฟกต์ที่กำหนดเอง ฉันได้ลองใช้คุณลักษณะ android: background กับ RecyclerView แล้วและตั้งค่าเป็น "? android: selectableItemBackground" แต่ไม่ได้ผล: <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:clickable="true" android:background="?android:selectableItemBackground" android:id="@+id/recyclerView" android:layout_below="@+id/tool_bar"/> นี่คือ RecyclerView ที่ฉันพยายามเพิ่มเอฟเฟกต์ให้กับ:

6
มีวิธีใดในการเปิดใช้งานแถบเลื่อนสำหรับ RecyclerView ในโค้ดหรือไม่?
อย่างที่เราเห็น RecyclerView มีประสิทธิภาพมากกว่า ListView ดังนั้นฉันจึงชอบใช้ในโครงการของฉัน แต่เมื่อเร็ว ๆ นี้ฉันมีปัญหาเมื่อใส่ไว้ใน ViewGroup ที่กำหนดเอง RecyclerView นั้นง่ายต่อการตั้งค่าแถบเลื่อนใน xml ดังนี้: <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent" /> แต่ฉันไม่พบวิธีการตั้งค่าแถบเลื่อนในโค้ดสำหรับ RecyclerView สิ่งที่ฉันได้ลองคือ: mRecyclerView.setVerticalScrollBarEnabled(true); จากนั้นฉันก็เห็นสิ่งนี้ในเอกสารของ Android ดังนั้นฉันจึงพยายามสร้าง LayoutManager ของตัวเองและแทนที่ฟังก์ชันที่ฉันคิดว่าฉันต้องการ แต่สุดท้ายฉันก็ทำไม่สำเร็จ ใครช่วยบอกทีว่าฉันควรสร้าง LayoutManager ของตัวเองได้อย่างไรหรือแค่แสดงวิธีแก้ปัญหาอื่น ๆ ขอบคุณ!

14
การรีเฟรชข้อมูลใน RecyclerView และรักษาตำแหน่งการเลื่อน
วิธีการรีเฟรชข้อมูลที่แสดงในRecyclerView(เรียกnotifyDataSetChangedใช้อะแดปเตอร์) และตรวจสอบให้แน่ใจว่าตำแหน่งการเลื่อนถูกรีเซ็ตเป็นตำแหน่งที่ตรงกันหรือไม่? ในกรณีของสิ่งที่ดีListViewทั้งหมดก็คือการดึงข้อมูลการgetChildAt(0)ตรวจสอบgetTop()และการโทรsetSelectionFromTopด้วยข้อมูลที่ตรงกันในภายหลัง RecyclerViewมันไม่ได้ดูเหมือนจะเป็นไปได้ในกรณีของ ฉันเดาว่าฉันควรจะใช้มันLayoutManagerที่ให้scrollToPositionWithOffset(int position, int offset)มา แต่วิธีที่เหมาะสมในการดึงตำแหน่งและออฟเซ็ตคืออะไร? layoutManager.findFirstVisibleItemPosition()และlayoutManager.getChildAt(0).getTop()? หรือมีวิธีที่หรูหรากว่านี้ในการทำงานให้ลุล่วง?

9
ใช้ Espresso เพื่อคลิกดูภายในรายการ RecyclerView
ฉันจะใช้ Espresso เพื่อคลิกมุมมองที่ต้องการภายในรายการRecyclerView ได้อย่างไร ฉันรู้ว่าฉันสามารถคลิกรายการที่ตำแหน่ง 0 โดยใช้: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); แต่ฉันต้องคลิกที่มุมมองเฉพาะภายในรายการนั้นไม่ใช่ในรายการนั้นเอง ขอบคุณล่วงหน้า. - แก้ไข - เพื่อให้แม่นยำยิ่งขึ้น: ฉันมีRecyclerView ( R.id.recycler_view) ซึ่งรายการคือCardView ( R.id.card_view) ภายในแต่ละCardViewฉันมีสี่ปุ่ม (เหนือสิ่งอื่นใด) และฉันต้องการคลิกที่ปุ่มใดปุ่มหนึ่ง ( R.id.bt_deliver) ฉันต้องการใช้คุณสมบัติใหม่ของ Espresso 2.0 แต่ไม่แน่ใจว่าเป็นไปได้ ถ้าเป็นไปไม่ได้ฉันต้องการใช้สิ่งนี้ (โดยใช้รหัส Thomas Keller): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); แต่ไม่รู้จะใส่เครื่องหมายคำถามอะไรดี

21
วิธีสร้างเมนูบริบทสำหรับ RecyclerView
ฉันจะใช้เมนูบริบทสำหรับการRecyclerView?โทรแบบเห็นได้ชัดregisterForContextMenu(recyclerView)ไม่ได้อย่างไร ฉันเรียกมันจากเศษเสี้ยว มีใครประสบความสำเร็จบ้างในการนำสิ่งนี้ไปใช้

26
ไม่สามารถแก้ไข: com.android.support:cardview-v7:26.0.0 android
ฉันพยายามเพิ่ม Recyclerview ในโปรเจ็กต์ของฉันและได้รับข้อผิดพลาดนี้ปรากฏขึ้นและฉันเพิ่มมันจากการอ้างอิงของ android studio

11
Recyclerview ภายในการเลื่อนแบบ Nested Scrollview แต่ไม่เลื่อนเร็วเหมือน Recyclerview ปกติหรือ Nested Scrollview
ฉันใช้RecyclerViewภายในNestedScrollViewและมันได้ผล แต่เมื่อฉันใช้RecyclerViewภายในLinearLayoutหรือบางสิ่งบางอย่างมันจะเลื่อนด้วยความเร็วต่างๆขึ้นอยู่กับท่าทาง การเลื่อนฟังท่าทางและถ้าฉันเลื่อนขึ้นเพียงเล็กน้อยมันก็จะเลื่อนขึ้นเล็กน้อยในขณะที่ถ้าฉันเลื่อนเร็วมากมันก็จะเลื่อนเร็วมาก ตอนนี้ปัญหาของฉันคือRecyclerViewข้างในNestedScrollViewเลื่อนอย่างแน่นอน แต่การเลื่อนอย่างรวดเร็วไม่ทำงาน อย่างไรก็ตามฉันเลื่อนขึ้นเร็วหรือช้าRecyclerViewหรือNestedScrollViewเลื่อนเพียงเล็กน้อย ฉันจะทำให้มุมมองการเลื่อนของฉันNestedScrollViewหรือRecyclerViewภายในนั้นเลื่อนด้วยความเร็วต่างๆได้อย่างไร


21
CheckBox ใน RecyclerView คอยตรวจสอบรายการต่างๆ
นี่คือ XML สำหรับรายการของฉันใน RecyclerView <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/cvItems" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_margin="2dp" card_view:cardElevation="0dp" card_view:contentPadding="0dp" card_view:cardBackgroundColor="#FFFFFF" > <LinearLayout android:orientation="horizontal" android:layout_height="fill_parent" android:layout_width="fill_parent"> <TextView android:layout_width="0dip" android:layout_height="match_parent" android:layout_weight="0.8" android:id="@+id/tvContent" android:textSize="15dp" android:paddingLeft="5dp" android:paddingRight="5dp" /> <CheckBox android:id="@+id/cbSelect" android:layout_width="0dip" android:layout_weight="0.2" android:layout_height="match_parent" android:button="@drawable/cb_checked" android:gravity="center_horizontal" android:textAlignment="center" android:layout_gravity="center_horizontal" /> </LinearLayout> </android.support.v7.widget.CardView> และนี่คืออะแดปเตอร์ RecyclerView ที่ขยายเลย์เอาต์ด้านบนสำหรับแต่ละรายการ: public class AdapterTrashIncome extends RecyclerView.Adapter<AdapterTrashIncome.ViewHolder> { private …

3
ตั้งค่าช่วงสำหรับรายการใน GridLayoutManager โดยใช้ SpanSizeLookup
ฉันต้องการใช้เค้าโครงแบบตารางที่มีส่วนหัวของส่วน ลองนึกถึงhttps://github.com/TonicArtos/StickyGridHeaders ตอนนี้ฉันทำอะไร: mRecyclerView = (RecyclerView) view.findViewById(R.id.grid); mLayoutManager = new GridLayoutManager(getActivity(), 2); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 1; case MyAdapter.TYPE_ITEM: return 2; default: return -1; } } }); mRecyclerView.setLayoutManager(mLayoutManager); ตอนนี้ทั้งรายการปกติและส่วนหัวมีขนาดช่วง 1 ฉันจะแก้ปัญหานี้ได้อย่างไร?

7
ปิดใช้งานการปัดสำหรับตำแหน่งใน RecyclerView โดยใช้ ItemTouchHelper.SimpleCallback
ฉันใช้ Recyclerview 22.2.0 และคลาสผู้ช่วย ItemTouchHelper.SimpleCallback เพื่อเปิดใช้งานตัวเลือกปัดเพื่อปิดในรายการของฉัน แต่เนื่องจากฉันมีส่วนหัวประเภทหนึ่งอยู่ฉันจึงต้องปิดใช้งานพฤติกรรมการปัดสำหรับตำแหน่งแรกของอะแดปเตอร์ เนื่องจากRecyclerView.Adapterไม่มีเมธอด isEnabled ()ฉันจึงพยายามปิดใช้งานการโต้ตอบมุมมองผ่านเมธอดisEnabled ()และisFocusable ()ในการสร้าง ViewHolder แต่ไม่ประสบความสำเร็จ ฉันพยายามปรับเกณฑ์การปัดเป็นค่าเต็มเช่น0f ot 1fในเมธอดgetSwipeThreshold ()ของSimpleCallbackแต่ก็ไม่ประสบความสำเร็จเช่นกัน รหัสบางส่วนของฉันเพื่อช่วยให้คุณช่วยฉันได้ กิจกรรมของฉัน: @Override protected void onCreate(Bundle bundle) { //... initialization ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { return false; } …

22
วิธีการนำเข้า RecyclerView สำหรับ Android L-preview
พยายามใช้ RecyclerView ใหม่จากไลบรารีการสนับสนุน ฉันดาวน์โหลดการอัปเดต 20 สำหรับไลบรารีการสนับสนุนโดยใช้ตัวจัดการ SDK ฉันได้เพิ่มไฟล์ jar ลงในโฟลเดอร์ libs - และเพิ่มเพื่อสร้างเส้นทาง - ไม่มีโชคในการใช้ RecyclerView พยายามใช้การพึ่งพาการไล่ระดับตามAPI ของนักพัฒนา Android - ไม่แน่ใจว่านี่คือที่ที่ถูกต้องหรือไม่ - หน้านี้เกี่ยวข้องกับ AndroidTV มากขึ้น: com.android.support:recyclerview-v7:20.0.+ ไม่สามารถค่อยๆซิงค์โปรเจ็กต์ ความคิดใด ๆ ?

22
แอพขัดข้องเมื่อพยายามใช้ RecyclerView บน Android 5.0
ฉันกำลังพยายามยุ่งกับ RecyclerView ใหม่และเมื่อใดก็ตามที่ฉันพยายามเรียกใช้แอปของฉันจะขัดข้องทันที มันทำให้ฉัน NullPointerException android.support.v7.widget.RecyclerViewพยายามที่จะวิธีการเข้าถึงจาก ฉันดูโพสต์อื่น ๆ และเห็นว่าคนส่วนใหญ่ไม่มีcompile 'com.android.support:recyclerview-v7:+'แต่ฉันลองแล้วและมันก็ไม่ได้ช่วยอะไรเลย ไม่แน่ใจว่าจะทำอย่างไรในตอนนี้ความช่วยเหลือใด ๆ จะได้รับการชื่นชม บันทึกข้อผิดพลาดที่นี่: (ฉันจะโพสต์ภาพ แต่ฉันยังไม่มีตัวแทน 10 คน) java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView$LayoutManager.onMeasure(android.support.v7.widget.RecyclerView$Recycler, android.support.v7.widget.RecyclerView$State, int, int)' on a null object reference at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:1764) at android.view.View.measure(View.java:17430) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463) at android.view.View.measure(View.java:17430) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463) at android.widget.FrameLayout.onMeasure(FrameLayout.java:430) at android.view.View.measure(View.java:17430) …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.