Скрыть панель поиска при смене страницы viewPager - PullRequest
0 голосов
/ 21 июня 2020

чего я хочу достичь

  1. в ViewPager currentItem будет установлен значением Seekbar, которое я получаю из onStopTrackingTouch Sekbar, часть Seekbar работает нормально.
  2. при изменении страницы просмотра Панель поиска будет отображаться с некоторой анимацией (анимация работает нормально), затем через 3/4 секунды панель поиска должна скрыться. Я пробовал onPageScrollStateChanged в ViewPager также на onPageSelected безуспешно (я имею в виду, что работает неправильно), как я могу это сделать? Примечание: я использую ViewPager2 с адаптером RcycerView.

посмотрите код

currentValue = 1;
                seekBar.setMax(maxValue - minValue);
                seekBar.setProgress(currentValue - minValue);
                seekbarValue.setText(getStringInBangla("Item No " + currentValue));
                seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                    @Override
                    public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
                        currentValue = progress + minValue;
                        seekbarValue.setVisibility(VISIBLE);
                        seekbarValue.setText(getStringInBangla("Item No " + currentValue));
                        currentValue = seekBar.getProgress();
                    }
                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                    viewPager2.setCurrentItem(currentValue);
                    seekbarValue.setVisibility(GONE);
                }
            });
            viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                    super.onPageScrolled(position, positionOffset, positionOffsetPixels);
                }

                @Override
                public void onPageSelected(int position) {
                    super.onPageSelected(position);
                }

                @Override
                public void onPageScrollStateChanged(int state) {
                    transition = new Slide(Gravity.BOTTOM);
                    transition.setDuration(1500);
                    transition.addTarget(R.id.seekbar_parent);
                    TransitionManager.beginDelayedTransition(parent, transition);
                    Rect rect = new Rect();
                    if (!viewPager_Parent.getGlobalVisibleRect(rect)
                            && viewPager_Parent.getHeight() == rect.height()
                            && viewPager_Parent.getWidth() == rect.width()) {
                        viewPager_Parent.setVisibility(VISIBLE);
                        Log.e("TAG", "onPageScrolled");
                    }
                    switch (state) {
                        case ViewPager2.SCROLL_STATE_IDLE:
                            Log.e("TAG", "SCROLL_STATE_IDLE");
                            if (viewPager2.getCurrentItem() == currentValue) {
                                if (!seekBar.isSelected())
                                    handler.postDelayed(new Runnable() {
                                        @Override
                                        public void run() {
                                            transition = new Slide(Gravity.BOTTOM);
                                            transition.setDuration(1500);
                                            transition.addTarget(R.id.seekbar_parent);
                                            TransitionManager.beginDelayedTransition(parent, transition);
                                            if (viewPager_Parent.isShown()) {
                                                viewPager_Parent.setVisibility(GONE);
                                            }
                                        }
                                    }, 3000);
                            }
                            break;
                        case ViewPager2.SCROLL_STATE_DRAGGING:
                            Log.e("TAG", "SCROLL_STATE_DRAGGING");
                        case ViewPager2.SCROLL_STATE_SETTLING:
                            Log.e("TAG", "SCROLL_STATE_SETTLING");
                            viewPager_Parent.setVisibility(VISIBLE);
                            break;
                    }
                    super.onPageScrollStateChanged(state);
                }
            });
...