Android IllegalArgumentException:maxHeight(473)必须为>;=minHeight(747)
我正在尝试Jetpack Compose中的一个示例,下面出现了这个错误,自从代码运行以来,我没有做任何更改,唯一更改的是版本从dev15更改为alpha-01,然后发生了这种情况Android IllegalArgumentException:maxHeight(473)必须为>;=minHeight(747),android,kotlin,android-jetpack,android-jetpack-compose,Android,Kotlin,Android Jetpack,Android Jetpack Compose,我正在尝试Jetpack Compose中的一个示例,下面出现了这个错误,自从代码运行以来,我没有做任何更改,唯一更改的是版本从dev15更改为alpha-01,然后发生了这种情况 java.lang.IllegalArgumentException: maxHeight(473) must be >= minHeight(747) at androidx.compose.ui.unit.Constraints.copy-msEJaDk(Constraints.kt:15
java.lang.IllegalArgumentException: maxHeight(473) must be >= minHeight(747)
at androidx.compose.ui.unit.Constraints.copy-msEJaDk(Constraints.kt:158)
at androidx.compose.ui.unit.Constraints.copy-msEJaDk$default(Constraints.kt:146)
at androidx.compose.ui.draw.PainterModifier.modifyConstraints-BRTryo0(PainterModifier.kt:224)
at androidx.compose.ui.draw.PainterModifier.measure-3Jkh9V0(PainterModifier.kt:91)
at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(ModifiedLayoutNode.kt:36)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(DelegatingLayoutNodeWrapper.kt:106)
at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(LayerWrapper.kt:70)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.performMeasure-BRTryo0(DelegatingLayoutNodeWrapper.kt:106)
at androidx.compose.ui.node.LayerWrapper.performMeasure-BRTryo0(LayerWrapper.kt:70)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.foundation.layout.FillModifier.measure-3Jkh9V0(LayoutSize.kt:433)
at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(ModifiedLayoutNode.kt:36)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.foundation.layout.SizeModifier.measure-3Jkh9V0(LayoutSize.kt:507)
at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(ModifiedLayoutNode.kt:36)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:90)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:132)
at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(AndroidComposeView.kt:425)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:89)
at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:62)
at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1095)
at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasureBlocks$1.invoke(RowColumnImpl.kt:90)
at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasureBlocks$1.invoke(RowColumnImpl.kt)
at androidx.compose.ui.LayoutKt$measureBlocksOf$1.measure-2MWCACw(Layout.kt:146)
at androidx.compose.ui.node.InnerPlaceable.performMeasure-BRTryo0(InnerPlaceable.kt:48)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.foundation.layout.PaddingModifier.measure-3Jkh9V0(LayoutPadding.kt:169)
at androidx.compose.ui.node.ModifiedLayoutNode.performMeasure-BRTryo0(ModifiedLayoutNode.kt:36)
at androidx.compose.ui.node.LayoutNodeWrapper.measure-BRTryo0(LayoutNodeWrapper.kt:120)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt:90)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.invoke(OuterMeasurablePlaceable.kt)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:132)
at androidx.compose.ui.platform.AndroidComposeView.observeMeasureModelReads(AndroidComposeView.kt:425)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:89)
at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:62)
at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1095)
at androidx.compose.foundation.lazy.LazyForState.measure-mw7JCkE(LazyForState.kt:322)
at androidx.compose.foundation.lazy.
我的代码如下
import android.os.Bundle
import androidx.annotation.DrawableRes
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.Image
import androidx.compose.foundation.Text
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumnFor
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.setContent
import androidx.compose.ui.res.imageResource
import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview
import com.example.jetexample.ui.typography
val recipeList = listOf<Recipe>(Recipe(R.drawable.header,"Test", listOf("Azucar","Tomate","lasagna")),
Recipe(R.drawable.header,"Test", listOf("Azucar","Tomate","lasagna")),
Recipe(R.drawable.header,"Test", listOf("Azucar","Tomate","lasagna")))
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
RecipeList(recipeList)
}
}
}
@Composable
fun RecipeCard(recipe: Recipe) {
val image = imageResource(R.drawable.header)
Column(modifier = Modifier.padding(16.dp)) {
val imageModifier = Modifier
.preferredHeightIn(maxHeight = 180.dp)
.fillMaxWidth()
.clip(shape = RoundedCornerShape(8.dp))
Image(image,modifier= imageModifier, contentScale = ContentScale.Crop)
Spacer(Modifier.preferredHeight(16.dp))
Text(recipe.title, style = typography.h6)
for(ingredient in recipe.ingredients){
Text(ingredient,style = typography.body2)
}
}
}
@Composable
fun RecipeList(recipeList:List<Recipe>){
LazyColumnFor(recipeList) { item ->
RecipeCard(recipe = item)
}
}
@Preview(showBackground = true)
@Composable
fun RecipePreview(){
RecipeList(recipeList)
}
data class Recipe(
@DrawableRes val imageResource: Int,
val title: String,
val ingredients: List<String>
)
导入android.os.Bundle
导入androidx.annotation.DrawableRes
导入androidx.appcompat.app.appcompat活动
导入安卓
导入安卓
导入ANDROIDX。编写。基础。布局。*
进口产品
导入安卓
导入androidx.compose.runtime.Composable
导入androidx.compose.ui.Modifier
导入androidx.compose.ui.draw.clip
导入androidx.compose.ui.layout.ContentScale
导入androidx.compose.ui.platform.setContent
导入androidx.compose.ui.res.imageResource
导入androidx.compose.ui.unit.dp
导入androidx.ui.tooling.preview.preview
导入com.example.jetexample.ui.typography
val recipeList=listOf(配方(R.drawable.header,“Test”,listOf(“Azucar”,“Tomate”,“lasagna”)),
配方(R.可绘制标题,“测试”,列表(“Azucar”、“Tomate”、“千层面”),
配方(R.可绘制标题,“测试”,列表(“Azucar”、“Tomate”、“千层面”))
类MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
设置内容{
RecipeList(RecipeList)
}
}
}
@组合的
趣味RecipeCard(配方:配方){
val image=imageResource(R.drawable.header)
列(修饰符=modifier.padding(16.dp)){
val imageModifier=修改器
.preferredHeightIn(最大高度=180.dp)
.fillMaxWidth()
.clip(形状=圆角拐角形状(8.dp))
图像(图像,修改器=图像修改器,contentScale=contentScale.Crop)
垫片(修改器优先高度(16.dp))
文本(recipe.title,style=排版.h6)
用于(配方中的配料。配料){
文本(成分、样式=排版。正文2)
}
}
}
@组合的
趣味RecipeList(RecipeList:List){
LazyColumnFor(recipeList){项目->
RecipeCard(配方=项目)
}
}
@预览(showBackground=true)
@组合的
有趣的往事回顾{
RecipeList(RecipeList)
}
数据类配方(
@DrawableRes val imageResource:Int,
val标题:字符串,
val成分:列表
)
我想问题可能出在导入的dp
装置上,我真的不知道为什么会发生这种情况通过更换
.preferredHeightIn(maxHeight = 180.dp)
与
谢谢,已经修好了。
.preferredHeightIn(180.dp)