Android: match_parent属性的LinearLayout并不完全匹配父容器

4

I have the following xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/filters_view_container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="#ededed"
  android:orientation="vertical"
  android:paddingLeft="20dp"
  android:paddingRight="20dp" >

   <ExpandableListView
       android:id="@+id/filters_List"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:divider="#00000000">
   </ExpandableListView>

</LinearLayout>

LinearLayout有一个灰色背景。我希望这个背景填满整个屏幕(蓝色条和黑色条之间的空间),所以我将LinearLayout的高度设置为match_parent,但它仍然包裹着内容列表,所以我得到了一个白色间隙。这就是它的样子:
请问有人能给我一点提示怎么解决吗?
谢谢!
编辑:petrumo和Tanis.7x几乎是正确的。有些父视图没有占用所有可用的空间。我已经修复了,现在所有的父视图都占用了所有的空间。第一个没有填满空间的视图是我发布的LinearLayout(ID为filters_view_container)。它有android:layout_height="match_parent",所以我不明白为什么它没有占用所有的空间。
我添加了一个快照,显示了这个LinearLayout被选中后的层次结构查看器。

你是否已经检查了DDMS的层次结构查看器,以确保它确实与父级不匹配?看起来ListView应该占用那个额外的空间,因此页脚视图或过度滚动页脚颜色可能会占用剩余的空间(请参见https://dev59.com/GG025IYBdhLWcg3wHSCn#7623153)。 - Bryan Herbst
2个回答

3
也许问题出在更高的层级上,前一个视图没有占据整个空间。如果您发布更多布局代码,我可以给出更多提示。

几乎了解了。我查看了层次结构查看器,发现一些父视图没有占用所有可用空间。我修复了这个问题,但是尽管linearLayout具有height:match_parent属性,它仍然没有占用所有空间。我编辑了问题。 - mario595
尝试找出视图链停止完全显示的位置并进行修复,或者如果LinearList是最后一个,请尝试使用fill_parent或将bg移动到更高的级别。 - petrumo
谢谢,我已经将背景移动到了上一级,现在它显示出我想要的效果。我仍然困惑为什么linearLayout没有占据所有的空间,如果有人有任何想法,请与课堂分享。 - mario595

0

你没有发布你的编辑文本XML;无论如何,ListView正在填充/匹配父级,但是你的根视图指定了左右填充为20dp。因此,它填充了根布局,其中根布局左侧有20dp和右侧有20dp。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接