如何将Android ListView定位在视图上方 - 不占用整个空间

时间:2012-10-13 14:08:37

标签: android android-layout

要允许用户提交评论,我有2个视图,垂直堆叠。 ListView用于显示输入的注释和LinearLayout页脚,允许用户添加注释(基本上是EditText和按钮)。

页脚必须固定在屏幕的底部,ListView必须位于屏幕的上方。它与您在Facebook上为Android添加评论时的内容类似。

然而我不希望ListView最初占用整个空间 - 我希望它只占用显示其行所需的空间,但能够成长在用户添加评论时留下剩余的空间 - 同时始终保持在页脚布局之上。

我按照Android: How can you align a button at the bottom and listview above?

的建议尝试了一个LinearLayout

但是,这会导致ListView占用页脚上方的所有空间 - 当只有几条注释时 - 所以它主要是空的并且看起来很奇怪。

我尝试了一个RelativeLayout父级,其中页脚使用android:layout_alignParentBottom="true"锚定.....使用android:layout_above="@id/footerLayout"将ListView定位在页脚上方会强制执行与上面相同的操作(ListView占用所有剩余的内容)删除它允许ListView“增长”但如果它变得太大,它会与页脚重叠。

干杯。

2 个答案:

答案 0 :(得分:5)

我想这个解决方法会起作用!

<LinearLayout
    layout_width="MATCH_PARENT"
    layout_height="MATCH_PARENT"
    orientation="vertical">
    <LinearLayout
        layout_width="MATCH_PARENT"
        layout_height="0"
        android:weight="1"
        orientation="vertical">
        <YOURLIST
            layout_width="MATCH_PARENT"
            layout_height="wrap_content"
        />
    </LinearLayout>
    <YOURVIEW
         android:layout_width="MATCH_PARENT" 
         android:layout_height="WRAP_CONTENT" 
         android:weight="0"/>

</LinearLayout>

答案 1 :(得分:2)

我想一种方法是使用XML中的android:fillViewport属性。请参阅Romain Guy的这篇博客文章:http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/