Как получить размер AppBar по высоте при прокрутке на Android - PullRequest
0 голосов
/ 02 ноября 2019

В моем приложении я хочу получить мгновенный размер AppBarLayout.
У меня есть один recyclerView, и я хочу, чтобы scroll на этом recyclerView минимизировал макет, и для этого я использовал AppBarLayout
Для этого AppBarLayout я использовал listener для получения размера этого представления, но при регистрации этот размер просто показывает мне постоянный размер!

Моя активностькоды:

class MainActivity : AppCompatActivity() {

    private lateinit var context: Context

    val animals: ArrayList<String> = ArrayList()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        context = this

        // Loads animals into the ArrayList
        addAnimals()

        // Creates a vertical Layout Manager
        list.layoutManager = LinearLayoutManager(this)

        // Access the RecyclerView Adapter and load the data into it
        list.adapter = AnimalAdapter(animals, this)

        appbar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, verticalOffset ->
            val percentage =
                abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange
            minLay.alpha = percentage
            Log.e("CollapsingToolbarLog",
                "VerOffSet : $verticalOffset --- ScrollRange ${convertPixelsToDp(appBarLayout.height.toFloat(),context)}")
        })
    }

    fun convertPixelsToDp(px: Float, context: Context): Float {
        return px / (context.resources.displayMetrics.densityDpi.toFloat() / DisplayMetrics.DENSITY_DEFAULT)
    }

    fun addAnimals() {
        animals.add("dog")
        animals.add("cat")
        animals.add("owl")
        animals.add("cheetah")
        animals.add("raccoon")
        animals.add("bird")
        animals.add("snake")
        animals.add("lizard")
   }
}

В logcat всегда показывать мне 150 для appBarLayout размера!
I прокрутка макет почему не уменьшается это?

Как я могу исправить эту проблему ??

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