В моем приложении я хочу получить мгновенный размер 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 прокрутка макет почему не уменьшается это?
Как я могу исправить эту проблему ??