Fixed
Status Update
Comments
so...@google.com <so...@google.com> #2
Seems to work in dev10 with preferredHeight instead
Column(Modifier.fillMaxSize().drawBackground(Color.Green)) {
Stack(Modifier.height(240.dp).fillMaxSize().drawBackground(Color.Yellow)) {
Surface(modifier = Modifier.fillMaxWidth(), color = Color.Gray) {
Text("this takes all space")
}
}
}
But with height
instead of preferredHeight
does not.
ja...@google.com <ja...@google.com> #3
Found another way to reproduce
@Preview
@Composable
fun weightBug() {
Surface(modifier = Modifier.fillMaxWidth()) {
Row(modifier = Modifier.height(64.dp).fillMaxWidth()) {
Button(onClick = {}, modifier = Modifier.preferredWidth(124.dp)) {
Text(text = "Message")
}
Button(onClick = {}, modifier = Modifier.weight(1f)) {
Text(text = "Edit Profile")
}
Button(onClick = {}) {
Icon(Icons.Filled.MoreVert)
}
}
}
}
Works fine replacing width with preferredWidth
@Preview
@Composable
fun weightBug() {
Surface(modifier = Modifier.fillMaxWidth()) {
Row(modifier = Modifier.height(64.dp).fillMaxWidth()) {
Button(onClick = {}, modifier = Modifier.preferredWidth(124.dp)) {
Text(text = "Message")
}
Button(onClick = {}, modifier = Modifier.weight(1f)) {
Text(text = "Edit Profile")
}
Button(onClick = {}) {
Icon(Icons.Filled.MoreVert)
}
}
}
}
Works fine replacing width with preferredWidth
po...@google.com <po...@google.com> #4
There is a bug in width and height which causes them to remove the incoming cross axis constraints when measuring their wrapped. Working on a fix.
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 448c4e77a029cd6ce0f63254a94d6100c0a7940b
Author: Mihai Popa <popam@google.com>
Date: Thu Apr 23 18:56:54 2020
Fix measurement in width and height modifiers
Before this CL, the width and height modifiers were measuring their
wrapped layout with [0, infinity) constraints in the opposite axis. This
CL fixes this behavior, by keeping the opposite axis constraints the
modifier is measured with.
Relnote: Fixed a bug in the width and height modifiers that was causing the wrapped layout to be measured with no opposite axis constraints.
Bug: 154797971
Test: LayoutSizeTest
Change-Id: I210b84ad765c3ab33e593f027245ab135dd036f4
M ui/ui-layout/api/0.1.0-dev11.txt
M ui/ui-layout/api/current.txt
M ui/ui-layout/api/public_plus_experimental_0.1.0-dev11.txt
M ui/ui-layout/api/public_plus_experimental_current.txt
M ui/ui-layout/api/restricted_0.1.0-dev11.txt
M ui/ui-layout/api/restricted_current.txt
M ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutSizeTest.kt
M ui/ui-layout/src/main/java/androidx/ui/layout/LayoutSize.kt
https://android-review.googlesource.com/1294634
Branch: androidx-master-dev
commit 448c4e77a029cd6ce0f63254a94d6100c0a7940b
Author: Mihai Popa <popam@google.com>
Date: Thu Apr 23 18:56:54 2020
Fix measurement in width and height modifiers
Before this CL, the width and height modifiers were measuring their
wrapped layout with [0, infinity) constraints in the opposite axis. This
CL fixes this behavior, by keeping the opposite axis constraints the
modifier is measured with.
Relnote: Fixed a bug in the width and height modifiers that was causing the wrapped layout to be measured with no opposite axis constraints.
Bug: 154797971
Test: LayoutSizeTest
Change-Id: I210b84ad765c3ab33e593f027245ab135dd036f4
M ui/ui-layout/api/0.1.0-dev11.txt
M ui/ui-layout/api/current.txt
M ui/ui-layout/api/public_plus_experimental_0.1.0-dev11.txt
M ui/ui-layout/api/public_plus_experimental_current.txt
M ui/ui-layout/api/restricted_0.1.0-dev11.txt
M ui/ui-layout/api/restricted_current.txt
M ui/ui-layout/src/androidTest/java/androidx/ui/layout/test/LayoutSizeTest.kt
M ui/ui-layout/src/main/java/androidx/ui/layout/LayoutSize.kt
Description
@Preview
@Composable
fun FillBug() {
Column(
modifier = Modifier
.fillMaxSize()
) {
Stack(
modifier = Modifier
.height(240.dp)
.fillMaxSize()
) {
Surface(
modifier = Modifier.fillMaxSize(),
color = Color.LightGray
) {
Text("This should fill the whole width")
}
}
}
}