我想知道:什么是android:weightSum和布局权重,它们是如何工作的?

推荐答案

根据文档,android:weightSum定义了最大重量总和,如果没有明确指定,则计算为所有子项中layout_weight的总和.

让我们考虑一个带有水平方向的LinearLayout,里面有3个ImageViews的例子.现在我们希望这些ImageViews始终占据相等的空间.要实现这一点,可以将ImageView中的layout_weight设置为1,weightSum将被计算为等于3,如注释所示.

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    <!-- android:weightSum="3" -->
    android:orientation="horizontal"
    android:layout_gravity="center">

   <ImageView
       android:layout_height="wrap_content"       
       android:layout_weight="1"
       android:layout_width="0dp"/>
  .....

weightSum对于为任何设备正确呈现布局非常有用,如果您直接设置宽度和高度,则不会出现这种情况.

Android相关问答推荐

如何在安卓系统上使用Float16霓虹灯?

如何删除Jetpack Compose中的Textfield底线

默认调度程序是否在协程中使用共享线程池?

如何将我的Android应用程序(Kotlin)中的图像分享给其他应用程序?

在Jetpack Compose中,如何判断屏幕是否已重新组合?

如何禁用自动登录 google play games services android unity?

通过 setIntentScanningStrategyEnabled(true) 未检测到信标的 Android Beacon 库后台扫描

Jetpack Compose:在屏幕外制作长水平图像的动画

如何在Android中使用嵌套的Recyclerview

在 Material 3 TopAppBar 代码的哪个位置定义了填充?

Compose 状态不是 recomposing

如何知道我的应用程序的新版本是否显示广告?

如何用jetpack compose实现垂直李克特量表

如何使用 Jetpack Compose 在图像上叠加文本

如何解决 compose 中material 图标的由于接收器类型不匹配,以下候选者都不适用

如何处理 com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: For input string: "T1V 4Y8" Kotlin

更新后 Firebase 服务无法在模拟器上运行

为什么按钮没有拉伸到屏幕边缘?

Firebase Crashlytics 缩小 R8 Android

基线配置文件 x R8/Proguard