пустое реселлервью вылетает из моего приложения. нет базы данных - PullRequest
0 голосов
/ 30 апреля 2020

Если у меня есть элементы в моем представлении переработчика, то мое приложение не создает sh. Но когда я создаю новую учетную запись, и в представлении утилизатора ничего не отображается, мое приложение вылетает, даже если я сказал ему прекратить прослушивание, если оно пустое. вот где я масштабирую элементы:

    eventsPlace.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                if(newState == RecyclerView.SCROLL_STATE_IDLE){
                    View view = snapHelper.findSnapView(layoutManager);
                    int pos = layoutManager.getPosition(view);
                    RecyclerView.ViewHolder viewHolder = eventsPlace.findViewHolderForAdapterPosition(pos);

                    LinearLayout eventparent = viewHolder.itemView.findViewById(R.id.eventParent);
                    eventparent.animate().scaleY(1).scaleX(1).setDuration(350).setInterpolator(new AccelerateInterpolator()).start();


                }
                else {
                    View view = snapHelper.findSnapView(layoutManager);
                    int pos =  layoutManager.getPosition(view);
                    RecyclerView.ViewHolder viewHolder = eventsPlace.findViewHolderForAdapterPosition(pos);

                    LinearLayout eventparent = viewHolder.itemView.findViewById(R.id.eventParent);
                    eventparent.animate().scaleY(0.7f).scaleX(0.7f).setDuration(350).setInterpolator(new AccelerateInterpolator()).start();


                }
            }

            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
            }
        });

И чтобы первый масштабировался при запуске приложения, я должен сделать это

  databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                mEmptyListMessage.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
                final Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {

                        @Override
                        public void run() {
                            //DO Something ater 1ms = 100m
                            RecyclerView.ViewHolder viewHolderDefault = eventsPlace.findViewHolderForAdapterPosition(0);
                            LinearLayout eventparentDefault = viewHolderDefault.itemView.findViewById(R.id.eventParent);
                            eventparentDefault.animate().scaleY(1).scaleX(1).setDuration(350).setInterpolator(new AccelerateInterpolator()).start();
                        }
                    },100);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

Вот моя трассировка стека:

2020-04-30 15:54:43.053 3507-3507/com.example.carcrashdetection E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.carcrashdetection, PID: 3507
    java.lang.NullPointerException: Attempt to read from field 'android.view.View androidx.recyclerview.widget.RecyclerView$ViewHolder.itemView' on a null object reference
        at com.example.carcrashdetection.Home$5$1.run(Home.java:298)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7682)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

Раньше он не обрабатывал sh, так как у меня есть метод остановки прослушивания, но с тех пор, как я добавил обработчик, он зависал, но мне нужно, чтобы он надувал первый элемент при запуске моего приложения. Может кто-нибудь сказать мне, почему это происходит?

...