是否可以在Jetpack Compose中设置权重?例如,我想将一个项目的权重设置为布局的1/3,另一个项目的权重设置为布局的2/3。
在XML/ViewGroup样式中,可以使用LinearLayouts和ConstraintLayouts来实现这一点。
示例:
在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>
我知道您可以使用Tables来获得“均匀”分布的内容,但我想要“不均匀”分布。
6条答案
按热度按时间kx7yvsdv1#
您可以使用**
Modifier.weight
**类似于:
hgqdbh6s2#
由于“0.1.0-dev 09”修饰符在接口上移动,因此可以使用
修饰符.weight(浮点型,布尔型)
在测量未加权的子元素后,划分剩余的垂直/水平空间,并根据此权重进行分配
ztyzrc3y3#
Jetpack Compose的“0.1.0-dev 04”版本包含更改,并且FlexRow已被弃用。我可以建议以下解决方案:
结果:x1c 0d1x
**LayoutFlexible(flex = _f)**可帮助我们解决该问题,并且修饰符可应用于任何容器。
bt1cpqcv4#
在容器中的对象上使用Modifier.weight(float)。您也可以使用constraintlayout或低级
Layout
Composable。请查看compose路径中的官方compose layout codelab以获得更多关于相同的信息xdyibdwo5#
构成将状态转换为UI元素。
元件的组成元件的布局元件的绘制
标准布局组件
类似地,使用行可以在屏幕上水平放置项目。列和行都支持配置它们所包含元素的对齐方式。
使用Box可将元素置于另一个元素之上。Box还支持配置其所包含元素的特定对齐方式。
svujldwt6#