material-components / material-components/material-components-android
[Button] "requestLayout() improperly called by MaterialButton" spam
@pekingme is already working on this.
Since Mar 23, 2026.
- Dominant language
- Java
- Stars
- 17.4k
- Forks
- 3.2k
- PR merge metrics
- No merged PRs in 30d
Description
**Description:** When using a button group, many "requestLayout() improperly called by MaterialButton(Group)" events appear in the event log.
**How to reproduce:**
- Navigate to ButtonGroupDemoFragment
- Click the elevated “Tomatoes” button
- Observe the log
**Result:**
```
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ......ID 0,0-231,126 #1ac} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ......ID 263,0-513,126 #1ad} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ......ID 545,0-830,126 #1ae} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ......ID 862,0-988,126 #7f0903cb app:id/overflow_button} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButtonGroup{f0f3cd4 V.E...... ........ 0,975-988,1122} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ........ 0,0-231,126 #1ac} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ........ 263,0-513,126 #1ad} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ........ 545,0-830,126 #1ae} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ........ 862,0-988,126 #7f0903cb app:id/overflow_button} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ......ID 0,0-232,126 #1ac} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ......ID 264,0-512,126 #1ad} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ......ID 544,0-829,126 #1ae} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ......ID 861,0-987,126 #7f0903cb app:id/overflow_button} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButtonGroup{f0f3cd4 V.E...... ........ 1,975-988,1122} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ........ 0,0-231,126 #1ac} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ........ 263,0-512,126 #1ad} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ........ 544,0-829,126 #1ae} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ........ 861,0-987,126 #7f0903cb app:id/overflow_button} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ......ID 0,0-232,126 #1ac} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ......ID 264,0-511,126 #1ad} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ......ID 543,0-828,126 #1ae} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ......ID 860,0-986,126 #7f0903cb app:id/overflow_button} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButtonGroup{f0f3cd4 V.E...... ........ 1,975-988,1122} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ........ 0,0-231,126 #1ac} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ........ 263,0-512,126 #1ad} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ........ 544,0-829,126 #1ae} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ........ 861,0-987,126 #7f0903cb app:id/overflow_button} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ......ID 0,0-231,126 #1ac} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ......ID 263,0-511,126 #1ad} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ......ID 543,0-828,126 #1ae} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ......ID 860,0-986,126 #7f0903cb app:id/overflow_button} during layout: running second layout pass
W requestLayout() improperly called by com.google.android.material.button.MaterialButtonGroup{f0f3cd4 V.E...... ........ 0,975-988,1122} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{dfdae7d VFED..C.. ........ 0,0-231,126 #1ac} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{1db9172 VFED..C.. ........ 263,0-513,126 #1ad} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{f9d9c3 VFED..C.. ........ 545,0-830,126 #1ae} during second layout pass: posting in next frame
W requestLayout() improperly called by com.google.android.material.button.MaterialButton{7cd52be VFED..C.. ........ 862,0-988,126 #7f0903cb app:id/overflow_button} during second layout pass: posting in next frame
```
**Material Library version:** 1.14.0-alpha10
**Device:** Pixel 8 (API 36)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.