Как я могу скрыть (сдвинуть вниз) кнопку (которая выровнена по низу) всякий раз, когда просмотр андроида прокручивается в Android Studio с использованием Java - PullRequest
0 голосов
/ 18 октября 2019

Я знаю, как его можно применить к панели инструментов при любом scrollView в макете Coordinator. Я хочу сделать то же самое с помощью кнопки RecycleView. Так же, как bottomNav в приложении Pinterest. Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вот применяемый код, как объяснил Билал. На всякий случай, если это кому-нибудь понадобится,

  private void buttonSlideAnimation() {
            addButton = findViewById(R.id.bottom_add_button);

            DisplayMetrics displayMetrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
            int height = displayMetrics.heightPixels;

            final TranslateAnimation slideDownAnimation = new TranslateAnimation(0f, 0f, 0f, height);
            final TranslateAnimation slideUpAnimation = new TranslateAnimation(0f, 0f, height, 0f);
            slideDownAnimation.setDuration(1000);
            slideUpAnimation.setDuration(1000);


            recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                    super.onScrollStateChanged(recyclerView, newState);
                }

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

                    if (dy>0){
                        addButton.setVisibility(View.INVISIBLE);
                        addButton.startAnimation(slideDownAnimation);
                    } else {
                        addButton.setVisibility(View.VISIBLE);
                        addButton.startAnimation(slideUpAnimation);
                    }
                }
            });

        }
0 голосов
/ 18 октября 2019

Простой способ, который приходит на ум, - это использовать TranslateAnimation , предоставляемый Android, и проверять, прокручивается ли RecyclerView. Вот что вам нужно сделать

  1. Добавить прослушиватель прокрутки в RecyclerView и проверить, является ли направление прокрутки вниз или вверх

    YourRecyclerView.addScrollListener(new ScrollListener() {
        someScrollListenerMethod() {
            if (scrolling up) {
                showButton();
            } else {
                hideButton();
            }
         }
    ); 
    
  2. Создайте анимацию для перемещения кнопки вверх и вниз.

    slideDownAnimation = TranslateAnimation(0f, 0f, 0f, ScreenHeight)
    slideDownAnimation.duration = 1000f //1 second
    
    slideUpAnimation = TranslateAnimation(0f, 0f, ScreenHeight, 0f)
    slideUpAnimation.duration = 1000f //1 second
    
  3. Создайте методы отображения и скрытия кнопок, которые будут отображать и скрывать кнопку

    private void showButton() {
        yourButton.visibility = View.VISIBLE;
        yourButton.startAnimation(slideUpAnimation);
    }
    
    private void hideButton() {
        yourButton.visibility = View.INVISIBLE;
        yourButton.startAnimation(slideDownAnimation);
    }
    

Просто обратите внимание, код, предоставленный на шаге 1, не является реальным библиотечным кодом (я не могу вспомнить точный код), но вы легко можете его узнать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...