需要帮助来了解layout_weight =“1”

时间:2012-03-30 16:38:53

标签: android

在相机应用布局中,它有:

camera.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/app_root"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<include layout="@layout/preview_frame"/>
<include layout="@layout/camera_control"/>
</LinearLayout>

和preview_frame.xml是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1">
    .....
</RelativeLayout> 

和camera_control.xml是:

<ControlPanelLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/control_panel"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="76dp"
    android:background="@drawable/bg_camera_pattern">
    .....
 </ControlPanelLayout>

我的问题是preview_frame.xml中的'layout_weight =“1”是什么? 我已经阅读了layout_weight,但大多数时候它与layout_width =“0px”一起使用 在camera_control中,它没有指定任何layout_weight。

但在这种情况下,它不是。

谢谢。

2 个答案:

答案 0 :(得分:1)

布局权重决定在所有添加的视图占用基本区域后如何填充父级中的剩余空间。

添加视图组中视图的权重,并按比例分割剩余空间。因此,宽度为0且权重为1和2的两个视图的总和为3,一个视图将扩展为视图大小的1/3,另一个视图将扩展为2/3。

但是,如果视图具有宽度,则在分发额外空间之前,它们将占用该空间。因此,具有宽度且没有重量的视图将占用分配的空间,并且旁边的加权视图将填充余数,因此在我们之前的权重1和2的示例中,如果权重1视图具有宽度,则它将扩展到另外包括剩余空间的1/3,这可能使其大于重量2视图。

有点不专心,没有咖啡,但我希望它可以帮助你:P

答案 1 :(得分:0)

布局权重是各种布局元素的相对权重。 如果一个元素的权重为1,而其他元素的权重为0,则第一个元素将占用所有可用空间,除了其他元素所需的最小值。 如果一个元素的权重为1,另一个权重为2,则第一个元素占空间的1/3,另一个占2/3。

最好的问候。