Layout_Weight给出了意想不到的结果

时间:2016-06-28 17:07:00

标签: android-layout

所以我试图在屏幕上显示三个部分。一个顶级的工具栏" -esque东西占据了屏幕的10%。我稍后将填充的数据占据屏幕的70%,最后占据屏幕底部20%的搜索栏。

我认为这将是一件简单的事情:一个线性布局,有3个线性布局儿童,重量分别为0.1,0.7和0.2。但是,这不起作用。当我更改某些视图的layout_weight时,它会更改其他视图占用的屏幕数量。这是我目前的代码:

<?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="vertical">

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.95"
    android:orientation="horizontal">

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.2"
    android:orientation="horizontal">

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:background="@android:color/transparent"
    >

</LinearLayout>

</LinearLayout>

这给了我一个占据屏幕20%的第一个空白布局(是的,重量为0.95),第二个空布局占据屏幕的80%,最终布局为空。当我给最终布局一个权重,比如0.1时,它会给第一个布局增加一点空间。我认为我有一些流氓格式。

1 个答案:

答案 0 :(得分:0)

来自layout_weight documentation

  

此属性指定&#34;的重要性&#34;根据它应占据屏幕的空间大小来定义视图。较大的权重值允许它扩展以填充父视图中的任何剩余空间。

换句话说,它表示布局可以占用的剩余空间百分比 如果您不想以这些比例分配空间,那么您应该首先将高度0指定给<someTag class = "someClass"> <whatever class = "anotherClass"> </whatever> </someTag> (表示所有屏幕都是可用空间)。

LinearLayouts