可以在Jetpack Compose中进行权重吗?例如,我想以这样一种方式设置它,即一个项目被加权为布局的1/3,而另一个占剩余的2/3。
在XML/ViewGroup样式中,可以使用LinearLayouts和ConstraintLayouts来实现这一点。然而,令我沮丧的是,使用Jetpack Compose似乎是不可能的。
示例:
在ConstraintLayout中,这是按如下方式完成的:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:layout_width="0dp"
android:layout_height="100dp"
android:id="@+id/red"
android:background="@color/red"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/blue"
app:layout_constraintHorizontal_weight="1"/>
<View
android:layout_width="0dp"
android:layout_height="100dp"
android:id="@+id/blue"
android:background="@color/blue"
app:layout_constraintStart_toEndOf="@id/red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="2"/>
</androidx.constraintlayout.widget.ConstraintLayout>
在LinearLayouts中,这是按如下方式完成的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<View
android:layout_width="0dp"
android:layout_height="100dp"
android:id="@+id/red"
android:background="@color/red"
android:layout_weight="1"/>
<View
android:layout_width="0dp"
android:layout_height="100dp"
android:id="@+id/blue"
android:background="@color/blue"
android:layout_weight="2"/>
</LinearLayout>
我知道你可以用表来获得均匀分布的东西,但我想要不均匀分布。
Jetpack Compose的“0.1.0-dev04”版本包含更改,FlexRow已被弃用。我可以提出以下解决方案:
Row {
Card(modifier = LayoutFlexible(1f), color = Color.Red) {
Container(expanded = true, height = 50.dp) {
}
}
Card(modifier = LayoutFlexible(2f), color = Color.Green) {
Container(expanded = true, height = 50.dp) {
}
}
}
LayoutFlexible(flex = _f)帮助我们解决了这个问题,修饰符可以应用于任何容器。
由于“0.1.0-dev09”修饰符在接口上移动,因此可以使用
修饰语。权重(浮点,布尔值)
将测量未加权子元素后剩余的垂直/水平空间划分并按此权重分配
Column {
Row(modifier = Modifier.weight(2.0f, true)) {
Box (
modifier = Modifier.fillMaxWidth().fillMaxHeight(),
backgroundColor = Color.Red
)
}
Row(modifier = Modifier.weight(1.0f, true)) {
Box (
modifier = Modifier.fillMaxWidth().fillMaxHeight(),
backgroundColor = Color.Blue,
gravity = ContentGravity.Center
) {
Text(text = "A sample text")
}
}
Row(modifier = Modifier.weight(2.0f, true)) {
Box (
modifier = Modifier.fillMaxWidth().fillMaxHeight(),
backgroundColor = Color.Yellow
)
}
}
您可以使用< code>Modifier.weight
类似于:
Row() {
Column(
Modifier.weight(1f).background(Blue)){
Text(text = "Weight = 1", color = Color.White)
}
Column(
Modifier.weight(2f).background(Yellow)
) {
Text(text = "Weight = 2")
}
}
几天来,我一直试图成功地构建我正在进行的项目(使用Jetpack Compose),但当我更新gradle构建插件和其他一些依赖项时,我无法正确运行该项目。有一些gradle版本与dagger-hilt依赖项冲突,我不知道如何修复它。我正在使用Android Studio的金丝雀测试版。 这里还有我所有的gradle构建文件: Gradle构建模块应用程序: Gradle构建(项目层级): 错误:
如何从下方显示惰性列?默认情况下,它显示上面的列表
我想根据条件更改我的开始导航片段。我的起始片段可以是片段1或片段2。有没有办法实现它?
我想知道什么是喷气背包中的脚手架组成一个BottomAppBar示例任何人都可以帮我
我创建了一个项目,并添加了插件和dependency,我还对其进行了测试,结果很好。但当我重构项目以使用并启用jetifier工具项目不会构建,我会遇到多个错误,如: 转换文件“crashlytics-2.9.2.aar”以匹配属性{artifactType=jetitied-aar}失败 似乎< code>jetifier工具和< code>Crashlytics依赖项有问题。有没有办法关闭单个
我在jetpack撰写中使用了BottomSheet视图,但我想使用BotomSheet锁定屏幕,直到我们单击BotomShets的按钮并在BotomSheet中禁用外部触摸。我怎么做? 我的底单: 可组合函数是一个谷歌地图屏幕