I have two fragments
. In fragment A
there is a RecyclerView
, when I click on the element of which I get to another fragment B
. In fragment A
I have a MaterialToolbar which can have different heights, so in onViewCreated()
I call materialToolbar.height
to get its height. When I open fragment A
everything works fine, however when I click on an element in the RecyclerView
, I get to fragment B
, in which on pressing the back button I will go back to the fragment A
and the height of my materialToolbar
will already be 0. Why does it return 0? And how can I make it return the value I need?
Asked
Active
Viewed 104 times
0

onesector
- 361
- 5
- 18
-
Check this, i think that for your particular problem the best option is to use. View.getMeasuredHeigth() https://stackoverflow.com/questions/3591784/views-getwidth-and-getheight-returns-0 – Agustin Pazos Nov 16 '22 at 15:00
-
Can you please share some code for us to understand. Especially where you set toolbar height in fragment A. – Mert Nov 16 '22 at 15:24
1 Answers
0
There's an observer which listens to view-heirarchy of any given view.
toolbar.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
binding.mbSelect.viewTreeObserver.removeOnGlobalLayoutListener(this)
val height = materialToolbar.height
}
})
Try this above code in you fragment A, you will get the actual height toolbar

Sohaib Ahmed
- 1,990
- 1
- 5
- 23