แอพขัดข้องเมื่อพยายามใช้ RecyclerView บน Android 5.0


91

ฉันกำลังพยายามยุ่งกับ 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)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        at android.view.View.measure(View.java:17430)
        at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
        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)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        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)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
        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 com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
        at android.view.View.measure(View.java:17430)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5786)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
        at android.view.Choreographer.doCallbacks(Choreographer.java:580)
        at android.view.Choreographer.doFrame(Choreographer.java:550)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

สำหรับใครก็ตามที่มีข้อผิดพลาดนี้เกิดจากแท็บ Viewpager โปรดดูวิธีแก้ปัญหา
Hassan Gilak

คุณแก้ไขปัญหานี้แล้วหรือยังโปรดช่วยฉันมีปัญหาเดียวกัน
Sagar

อย่าลืมตั้งค่า / สร้าง / ลงทะเบียนในonCreateViewสิ่งที่คุณลบ / ทำลาย / ยกเลิกการลงทะเบียนonDestroyView... ต้องทำตามวงจรชีวิตเหล่านั้น!
Sakiboy

คำตอบ:


211

ปัญหานี้มักเกิดขึ้นเมื่อไม่มีLayoutManagerให้สำหรับไฟล์RecyclerView. คุณสามารถทำได้ดังนี้:

final LinearLayoutManager layoutManager = new LinearLayoutManager(context);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);

14
ฉันไม่คิดว่ามันจะต้องเป็นที่สิ้นสุดดังนั้นฉันจึงไม่คิดว่านั่นคือปัญหา ในกรณีของฉันฉันกำลังใช้งาน Fragment กับ RecyclerView และฉันพยายามเพียงแค่เก็บการอ้างอิงจาก onCreateView และตั้งค่า layoutManager ในภายหลังเมื่อข้อมูลถูกโหลด ฉันมีปัญหานี้และมันก็หายไปเมื่อฉันตั้งค่า layoutManager ก่อนหน้านี้ในเมธอด gamein onCreateView
Nemanja Kovacevic

3
@ NemanjaKovačevićฉันคิดว่าทุกตัวแปรที่ไม่จำเป็นต้องเปลี่ยนแปลงในภายหลังจะต้องถูกประกาศfinalว่าเป็นเหตุผลที่ฉันประกาศไว้finalที่นี่
อากา

2
เนื่องจาก LinearLayoutManager เป็นแนวตั้งโดยค่าเริ่มต้นคุณสามารถใช้ :cyclelerView.setLayoutManager (LinearLayoutManager ใหม่ (บริบท));
LL

1
ขอบคุณพระเจ้าที่ Google สามารถใช้ข้อความแสดงข้อผิดพลาดเดียวกันกับที่ Google สร้างขึ้นเพื่อให้เข้าใจตรงกันได้
jhegedus

1
@wesleyfranks เป็นการยากที่จะบอกได้ว่าทำไมคุณถึงได้รับการอ้างอิงวัตถุว่างโดยไม่ได้ดูที่ 1. รหัสที่ตั้งค่า RecyclerView ขึ้นและ 2. stacktrace ที่คุณได้รับหลังจากเกิดความผิดพลาด :)
นายพล

26

ในกรณีของฉันมันไม่ได้เชื่อมต่อกับ 'สุดท้าย' แต่กับปัญหาที่กล่าวถึงในความคิดเห็นของ@NemanjaKovačevićถึงคำตอบของ @aga ฉันกำลังตั้งค่า layoutManager ในการโหลดข้อมูลและนั่นคือสาเหตุของความผิดพลาดเดียวกัน หลังจากย้ายการตั้งค่า layoutManager ไปที่ onCreateView ของส่วนของฉันปัญหาได้รับการแก้ไขแล้ว

สิ่งนี้:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
{
...
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler);

mLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(mLayoutManager);

1
ขออีกครั้ง: ฉันไม่ได้บอกว่าปัญหานี้เกี่ยวข้องกับตัวแปรที่ยังไม่สิ้นสุด ปัญหาคือLayoutManager ไม่ได้ระบุไว้แค่นั้นเอง คุณสามารถกำหนดให้ตัวแปรชี้ไปที่LayoutManagerขั้นสุดท้ายหรือไม่สุดท้ายก็ได้ แต่จะไม่เปลี่ยนแปลงอะไรเลย
อากา

@Yurik ฉันกำลังใช้งานรีไซเคิลในกิจกรรมที่ไม่อยู่ในส่วน กรณีของฉันคืออะไร?
Youri

@Youri คุณควรวางการตั้งค่า layoutManager ใน onCreate ของกิจกรรมของคุณฉันคิดว่า
YuriK

10

สำหรับฉันฉันมีปัญหาเดียวกันปัญหาคือมี RecyclerView ที่ไม่ได้ใช้ใน xml พร้อมมุมมองที่หายไป แต่ฉันไม่ได้ผูกมันกับอะแดปเตอร์ใด ๆ ในกิจกรรมดังนั้นปัญหานี้ ได้รับการแก้ไขทันทีที่ฉันลบมุมมองรีไซเคิลที่ไม่ได้ใช้ใน xml

กล่าวคือ - ฉันลบมุมมองนี้เนื่องจากไม่ได้ถูกเรียกในโค้ดหรือมีการตั้งค่าอะแดปเตอร์ใด ๆ

<android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/rv_profileview_allactivities"
        android:visibility="gone" />

เหมือนกันที่นี่ทุกอย่างสมบูรณ์แบบ แต่ใช้งานไม่ได้ ดังนั้นฉันจึงลบการนำกลับมาใช้ใหม่ที่ไม่ได้ใช้และมันใช้งานได้โดยไม่มีปัญหาใด ๆ Thanks man @Maurice ^^
Bhupinder

1
หลังจากเสียเวลาไปหนึ่งวันฉันลองใช้วิธีแก้ปัญหาของคุณและมันได้ผล: D [:( เวลาของฉันเสียไป]
mfaisalhyder

8

ฉันประสบปัญหานี้แม้ว่าฉันจะRecyclerView.LayoutManagerตั้งค่าไว้อย่างถูกต้อง ฉันต้องย้ายRecyclerView รหัสเริ่มต้นไปที่การonViewCreated(...)ติดต่อกลับเพื่อแก้ไขปัญหานี้

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_listing, container, false);
    rootView.setTag(TAG);
    return inflater.inflate(R.layout.fragment_listing, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mLayoutManager = new LinearLayoutManager(getActivity());
    mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);

    mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setLayoutManager(mLayoutManager);

    mAdapter = new ListingAdapter(mListing);
    mRecyclerView.setAdapter(mAdapter);
}

2
อย่างไรก็ตามปัญหาของฉันไม่ได้รับการแก้ไข: / ฉันลองเกือบทุกวิธีแล้วและยังคงได้รับข้อผิดพลาดเดียวกันเมื่อใช้ RecyclerView ภายในส่วนที่จะแสดงใน PagerView :(
mfaisalhyder

สุดยอด! การย้ายRecyclerViewรหัสเริ่มต้นไปยังการonViewCreated(...) ทำงาน
Marcelo Gracietti

ฉันแก้ปัญหานี้แล้ว แต่ก็ยังคงเป็นโมฆะสำหรับฉัน ยังคงพยายามหาว่าอยู่ที่ไหน
wesley

5

คุณจำเป็นต้องใช้setLayoutManagerในRecyclerView#onCreate()วิธีการ ก่อนที่จะเพิ่มrecyclerViewลงในมุมมองจะต้องมีการLayoutManagerตั้งค่า

 private RecyclerView menuAsList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);

    menuAsList = (RecyclerView) findViewById(R.id.recyclerView_mainMenu);
    menuAsList.setLayoutManager(new LinearLayoutManager(Home.this));

}

3

ฉันได้รับปัญหานี้เนื่องจากการอ้างอิงRecyclerViewรหัสผิด

recyclerView = (RecyclerView) findViewById(R.id.rv_followers_list);

ถึง

recyclerView = (RecyclerView) findViewById(R.id.rv_search_list);

2
recyclerView =
            (RecyclerView) findViewById(R.id.recycler_view2);

ตรวจสอบกับคุณรหัสมุมมองผู้รีไซเคิลชี้ไปที่มุมมองผู้รีไซเคิลจริงช่วยแก้ปัญหาของฉันได้


1

ปัญหาของฉันอยู่ใน XML lyout ของฉันฉันมีandroid: animateLayoutChanges ที่ตั้งค่าเป็น true และฉันได้โทรไปที่ alertDataSetChanged () บนอะแดปเตอร์ RecyclerView ในโค้ด Java

ดังนั้นฉันเพิ่งลบandroid: animateLayoutChangesออกจากเลย์เอาต์ของฉันและนั่นก็ช่วยแก้ปัญหาของฉัน


1

ฉันมีปัญหานี้เมื่อใช้ห้องสมุด Butterknife ฉันมี:

View rootView = inflater.inflate
                (R.layout.fragment_recipe_detail_view, container, false);
ButterKnife.bind(rootView);

แต่เวอร์ชันที่ถูกต้องคือ:

View rootView = inflater.inflate
                (R.layout.fragment_recipe_detail_view, container, false);
ButterKnife.bind(this, rootView);

1

ในGradleใช้ไลบรารีนี้:

implementation 'com.android.support:appcompat-v7:SDK_VER'
implementation 'com.android.support:design:SDK_VER'
implementation 'com.android.support:support-v4:SDK_VER'
implementation 'com.android.support:support-v13:SDK_VER'
implementation 'com.android.support:recyclerview-v7:SDK_VER'

ในXMLกล่าวถึงดังนี้:

<android.support.v7.widget.RecyclerView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/recyclerView"/>

ในFragmentเราใช้recyclerViewสิ่งนี้:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
       View rootView = inflater.inflate(R.layout.YOUR_LAYOUT_NAME, container, false);

       RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(getActivity(), YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);
        return rootView;
    }

ในกิจกรรมเราใช้RecyclerViewสิ่งนี้:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.YOUR_LAYOUT_NAME);

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(ACTIVITY_NAME.this, YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);
   }

หากคุณต้องการแนวนอนให้ RecyclerViewทำสิ่งนี้:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
        recyclerView.setLayoutManager(layoutManager);
        APICallMethod();
        YOURADAPTER = new YOURADAPTER(ACTIVITY_NAME.this, YOUR_LIST); // you can use that adapter after for loop in response(APICALLMETHOD)
        recyclerView.setAdapter(YOURADAPTER);

หากคุณต้องการใช้GridLayoutManagerโดยRecyclerViewใช้การใช้เช่นนี้:

        RecyclerView recyclerView = findViewById(R.id.rvNumbers);
        recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); // 3 is number of columns.
        adapter = new MyRecyclerViewAdapter(this, data);
        recyclerView.setAdapter(adapter);

1

ฉันใช้Dependency Injection - ButterKnifeและปัญหานี้เกิดขึ้นเพราะฉันไม่ได้ผูกมุมมองไว้

ดังนั้นภายใน onCreate () ฉันเพิ่งแทรกบรรทัดนี้:

ButterKnife.bind(this);

การประกาศ RecyclerView ของฉันด้วย Dependency Injection:

@BindView(R.id.recyclerview)
RecyclerView recyclerView;

1

สำหรับผู้ที่กำลังใช้: การใช้งาน 'androidx.recyclerview: รีไซเคิลวิว: 1.1.0-beta05'

ตรวจสอบให้แน่ใจว่าคุณใช้สิ่งนี้ในเลย์เอาต์ xml ของคุณ

ฉันยังพบข้อขัดข้องเมื่อเรียกใช้แอปด้านล่าง API 27 นี่คือลิงก์ไปยังข้อความ

ในขั้นต้นฉันได้สร้างสไตล์เพื่อเปลี่ยนขนาดตัวอักษรของมุมมองข้อความของฉันในมุมมองรีไซเคิลนั่นคือเหตุผลที่ฉันสร้างรหัสนี้ด้านล่าง: (ฉันสามารถเรียกว่า @dimen เมื่อเปลี่ยนขนาดตัวอักษรตามขนาดหน้าจอ)

ภายใน style.xml

และเพิ่มสิ่งนี้ในธีมของฉัน

themes.xml

หลังจากตรวจสอบแล้วฉันพบว่านี่เป็นสาเหตุของข้อผิดพลาดและหลังจากลบสไตล์ออกแล้วฉันก็ไม่พบข้อขัดข้องอีกต่อไป

ฉันลองวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมดที่ฉันพบที่นี่ในสแต็กโอเวอร์โฟลว์และเกือบจะยอมแพ้กับสิ่งนี้โชคดีในความอยากรู้อยากเห็นของฉันฉันคิดว่าทำไมไม่ลบสไตล์ออกไปบางทีนี่อาจทำให้เกิดความผิดพลาดแล้วบูมความผิดพลาดก็หายไป


1
โปรดใส่ตัวอย่างโค้ดโดยตรงแทนที่จะลิงก์ไปยังรูปภาพ ดูส่วน "ช่วยผู้อื่นแก้ไขปัญหา": stackoverflow.com/help/how-to-ask
Chris B

1
ฉันชอบ @ChrisB นี้จริงๆ นี่เป็นครั้งแรกที่ฉันแสดงความคิดเห็นที่นี่เนื่องจากชื่อเสียงของฉันต่ำเกินไปอย่างที่คุณเห็น วันนี้ฉันพบความผิดพลาดและฉันคิดว่าจะโพสต์ที่นี่เพราะอาจมีคนที่กำลังเผชิญอยู่เช่นกันโดยเฉพาะพวกเขากำลังใช้ 'androidx.recyclerview: รีไซเคิลview: 1.1.0-beta05'
Jeanne vie

0

เนื่องจาก LinearLayoutManager เป็นแนวตั้งโดยค่าเริ่มต้นวิธีที่ง่ายกว่าในการดำเนินการนี้คือ:

recyclerView.setLayoutManager(new LinearLayoutManager(context));

หากคุณต้องการเปลี่ยนการวางแนวคุณสามารถใช้ตัวสร้างนี้:

public LinearLayoutManager(Context context, int orientation, boolean reverseLayout);

มีผู้จัดการที่แปลกประหลาดคือตอนนี้ ฉันกำลังสร้างอินสแตนซ์ แต่ยังคงเกิดข้อผิดพลาดนี้ วัวศักดิ์สิทธิ์
filthy_wizard

0

ฉันคิดว่าปัญหาในAdapterไฟล์. ตรวจสอบให้แน่ใจว่าคุณได้กลับViewHolderเข้าonCreateViewHolder()มา ชอบด้านล่าง:

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v;
    v = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_leaderboard, parent, false);
    ViewHolder view_holder = new ViewHolder(v);
    return view_holder;
}

0

สำหรับฉันปัญหาเกิดจาก activity_main.xml (21) ของฉันซึ่ง recycleView ไม่มี id

activity_main.xml (21)

 <android.support.v7.widget.RecyclerView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/button3"
    tools:listitem="@layout/transaction_list_row" />

activity_main.xml

<android.support.v7.widget.RecyclerView

    android:id="@+id/transac_recycler_view"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/button3"
    />

ใช้งานได้เมื่อฉันเพิ่ม android: id = "@ + id / transac_recycler_view" ลงใน activity_main.xml (21) recycleView


0

ในกรณีของฉันฉันเพิ่มเฉพาะไลบรารี butterknife และลืมใส่ annotationProcessor โดยการเพิ่มบรรทัดด้านล่างใน build.gradle (โมดูลแอพ) ช่วยแก้ปัญหาของฉัน

    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

0

Recyclerview recylerview = findbyid (R.id.recyclerview) คุณอาจพลาดไปแล้ว


สวัสดียินดีต้อนรับสู่ SO! โปรดอธิบายเพิ่มเติมว่าเหตุใดจึงเกี่ยวข้องกับคำถามนี้ ตามที่เขียนไว้ในปัจจุบันมันยากที่จะบอกว่าคุณกำลังอ้างถึงอะไร
Piotr Kamoda

0

ฉันมีปัญหาคล้ายกันเมื่อฉันทดสอบแอปพลิเคชันบน GenyMotion หลังจากรีสตาร์ทอุปกรณ์ในปัญหา GenyMotion ได้รับการแก้ไข


0

ฉันประสบปัญหาเดียวกันเพราะฉันมี RecyclerView ในรูปแบบอื่นและไม่ได้อยู่ใน activity_main.xml

จากการค้นหาในบางไซต์ฉันได้รับบางอย่างและรู้สึกอยากแบ่งปันที่นี่

  1. เพิ่ม Id เพื่อรวมแท็กใน Activity_main.xml

    <include id="includedRecyclerLayout" .... </include>

  2. เรียกเลย์เอาต์นี้ก่อน Searching view by ID ใน MainActivity.java

    `ConstraintLayout includedLayout = findViewById (R.id.inckudedRecyclerLayout);

    RecyclerViewrecyclerview = includedLayout.findViewById (R.id.RECYCLER_VIEW_ID) `;


0

ฉันมีปัญหานี้เมื่อใช้ Butterknife ฉันใช้แฟรกเมนต์

สำหรับ Fragment ควรเป็น ButterKnife.bind(this,view);

สำหรับกิจกรรม ButterKnife.bind(this);


-1

ถ้าฉันอยู่ที่ไหนฉันจะทำแบบนี้ onView (withId (android.R.id.list)) ดำเนินการ (RecyclerViewActions.scrollToPosition (3)); android.R.id.list เปลี่ยนเป็นรหัสรายการของคุณและตำแหน่งจะเป็นตำแหน่งของคุณในอาร์เรย์ของคุณ


-1

ใช้ชิ้นส่วน

การเขียนโค้ดใน onCreateView ()

RecyclerView recyVideo = view.findViewById (R.id.recyVideoFag);

โดยใช้กิจกรรม

การเขียนโค้ดใน onCreate () RecyclerView recyVideo = findViewById (R.id.recyVideoFag);

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