material-components / material-components/material-components-android
[AppBarLayout] Inconsistent default scrollFlags between XML and code
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 17.4k
- Forks
- 3.2k
- PR merge metrics
- No merged PRs in 30d
Description
**Description:**
`AppBarLayout.LayoutParams` defaults `scrollFlags` to `SCROLL_FLAG_SCROLL` (1) at field declaration, but XML inflation defaults to `0` (no scroll) when attribute is absent.
**Expected behavior:**
Both should default to `0` for consistency.
**Source code:**
```java
// Field declaration - defaults to 1
int scrollFlags = SCROLL_FLAG_SCROLL;
```
```java
// XML inflation - defaults to 0 when attribute missing
scrollFlags = a.getInt(R.styleable.AppBarLayout_Layout_layout_scrollFlags, 0);
```
**Workaround:**
Explicitly set `params.scrollFlags = 0` when creating programmatically.
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.
Research direction
Locate AppBarLayout.LayoutParams and compare the field declaration with the XML inflation path that reads layout_scrollFlags. Change the programmatic default to match the documented XML default of 0, then verify that both programmatic and XML-created parameters have no scroll flags when none are specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 75/100