Проблема с панелью приложения: onOffsetChanged вызывается снова и снова, когда verticalOffset = 0 - PullRequest
0 голосов
/ 26 апреля 2019

Я попытался сделать два разных цвета некоторых видов на панели инструментов для этих сценариев

  • 1 - когда складывающаяся штанга расширена.
  • 2 - когда свернутая штанга свернута.

Я пробовал это решение https://stackoverflow.com/a/32724422/5927252 в течение долгого времени, но потом я понял, что, когда вертикальное расстояние равно 0 метод вызывается снова и снова

пользователь обязан держать свернутую панель приложения (при вертикальном удалении = 0), поэтому я думаю, что это потребует больше памяти и процессора

любые предложения, пожалуйста


app_bar_layout_home.addOnOffsetChangedListener(object : AppBarLayout.OnOffsetChangedListener {
            var isShow = true
            var scrollRange = -1

            override fun onOffsetChanged(appBarLayout: AppBarLayout, verticalOffset: Int) {
                Log.e("tag", "Vertical offset = $verticalOffset") // at this line it's called over and over agian


                if (scrollRange == -1) {
                    scrollRange = appBarLayout.totalScrollRange

                }
                if (scrollRange + verticalOffset == 0) {
                    collapsing_tb_layout_home.title = getString(R.string.browse_shops)


                    isShow = true

                } else if (isShow) {
                    collapsing_tb_layout_home.title = " " //be careful a space between double quote is a must
                    isShow = false
                }

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