0

I hide an item in recycler view by using the code holder.itemView.setVisibility(View.GONE); even though the item is hided it is leaving unwanted blank spaces, so for removing that space I had used holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0,0)); , but now my app is arashing. Can any one tell me why it is so ..Please see the code below

private void getEnquires(){

query=RootRef.child("Enquires");

// EnquiryModelClass is my model class

FirebaseRecyclerOptions<EnquiryModelClass> options =
        new FirebaseRecyclerOptions.Builder<EnquiryModelClass>()
                .setQuery(query,EnquiryModelClass.class)
                .build();
FirebaseRecyclerAdapter<EnquiryModelClass,EnquiryListViewHolder> adapter
        =new FirebaseRecyclerAdapter<EnquiryModelClass, EnquiryListViewHolder>(options) {
    @Override
    protected void onBindViewHolder(@NonNull EnquiryListViewHolder holder, int position, @NonNull EnquiryModelClass model) {

        final String messageId = getRef(position).getKey();

        RootRef.child("Enquires").child(messageId).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {

                final String  returnBuyerIDs=snapshot.child("buyerId").getValue().toString(); // here I am fetching id of the person who send the enquiry from my database

                holder.EnquiryMessage.setText("You have an enquiry on ");

                holder.eqDate.setText( model.getDate());
                holder.eqTime.setText(",at:"+ model.getTime());

                holder.Viewmore.setText("ViewMore ");

                holder.Viewmore.setOnClickListener(new View.OnClickListener() { // I had put a button in recycler view upon clicking on the item , it has to take me to next activity and hide current item
                    @Override
                    public void onClick(View v) {

                        Intent chatIntent = new Intent(getContext(), FirstReplyActivity.class); // video 46
                        chatIntent.putExtra("seller_id", SellerUserId);
                        chatIntent.putExtra("enquiry_message_id", messageId);
                        chatIntent.putExtra("buyer_user_id", returnBuyerIDs);//
                        chatIntent.putExtra("buyer_enquiry_message", model.getEnquiryMessage());//
                        chatIntent.putExtra("buyer_user_name", model.getCustomerName());
                        chatIntent.putExtra("enquiryDate", model.getDate());
                        chatIntent.putExtra("enquiryTime", model.getTime());

                        startActivity(chatIntent);

                     holder.itemView.setVisibility(View.GONE); //This I have used to hide item clicked
                        holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0,0)); //by writing this line my app is crashing

                    }
                });
            }
            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });

    }
    @NonNull
    @Override
    public EnquiryListViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.enquirylist_layout_for_recycler, viewGroup, false);
        EnquiryListViewHolder viewHolder = new EnquiryListViewHolder(view);
        return viewHolder;
    }
};

EnqList10km.setAdapter(adapter); 
adapter.startListening();

}

crash log 2021-06-04 00:09:21.300 22003-22003/com.example.bet4best E/RecyclerView: No adapter attached; skipping layout 2021-06-04 00:09:25.175 22003-22003/com.example.bet4best E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.bet4best, PID: 22003 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.recyclerview.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference at androidx.recyclerview.widget.RecyclerView.findMinMaxChildLayoutPositions(RecyclerView.java:4311) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4045) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3849) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at androidx.viewpager.widget.ViewPager.onLayout(ViewPager.java:1775) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:1225) at android.view.View.layout(View.java:24475) at android.view.ViewGroup.layout(ViewGroup.java:7383) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4273) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3708) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2631) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9978) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1010) at android.view.Choreographer.doCallbacks(Choreographer.java:809) at android.view.Choreographer.doFrame(Choreographer.java:744) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8506) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

0 Answers0