【问题标题】:Android: LinearLayout with match_parent doesn't Match ParentAndroid:带有 match_parent 的 LinearLayout 与父级不匹配
【发布时间】:2013-11-11 14:45:15
【问题描述】:

我有以下 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 应该占用额外的空间,因此页脚视图或过度滚动页脚颜色可能会占用剩余空间(请参阅 stackoverflow.com/a/7623153/1253844)。

标签: android android-layout


【解决方案1】:

可能问题更高一级,之前的 View 没有占用整个空间。如果您发布更多布局代码,我可以提供更多提示。

【讨论】:

  • 差不多。我查看了层次结构查看器,一些父视图并没有占用所有可用空间。我解决了这个问题,但是 linearLayout 并没有占用所有空间,尽管它有 height:match_parent。我编辑了问题。
  • 尝试找出视图链停止获取完整视图的位置并修复它,或者如果 LinearList 是最后一个,请尝试使用 fill_parent 或将 bg 移动更高一级。
  • 谢谢,我已经将背景移到了上一层,现在它可以按我的意愿显示了。我仍然对为什么 linearLayout 没有占用所有空间感到困惑,所以如果有人有任何想法,请与课堂分享。
【解决方案2】:

您没有发布您的编辑文本 xml;无论如何,列表视图正在填充/匹配父级,但您的根视图指定了 20dp 的左右填充。所以它填充了根布局左20dp和右20dp的根布局

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多