如何将Android ListView定位在视图上方-而不占用全部空间

4
为了允许用户提交评论,我有2个垂直堆叠的视图。一个ListView用于显示已输入的评论,一个LinearLayout页脚,用于允许用户添加评论(基本上是EditText和按钮)。
页脚必须锚定在屏幕底部,ListView必须位于其上方。这就像您在facebook for Android上添加评论时看到的那样。
然而,我不想ListView最初占满整个空间-我希望它仅占用显示其行所需的空间,但能够随着用户添加评论而增长-始终保持在页脚布局上方。
我尝试了一个LinearLayout,如此处建议的:Android:如何将按钮与列表视图对齐? 然而,这会导致ListView在只有几条评论时占据所有的空间,因此它主要是空的,看起来很奇怪。
我尝试使用RelativeLayout作为父容器,其中页脚使用android:layout_alignParentBottom="true"进行定位...... 使用android:layout_above="@id/footerLayout"将ListView定位在页脚上方会强制出现相同的行为(ListView占用所有剩余空间)...... 如果删除此设置,则允许ListView“增长”,但如果它增长得太大,则会重叠页脚。

您想将页脚固定在底部吗?还是应该浮动在列表视图下方? - Sherif elKhatib
它应该固定在屏幕底部。 - Neil
2个回答

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>

确实如此!我不明白将LV包装在父布局中如何解决这个问题...你能解释一下吗? - Neil
1
@NeilпјҡжҳҜеӨ–йғЁLinearLayoutдҪҝз”Ёзҡ„android:weightеұһжҖ§дҪҝеҶ…йғЁLinearLayoutеҚ з”ЁжүҖжңүвҖңжңӘдҪҝз”ЁвҖқзҡ„з©әй—ҙгҖӮжӮЁеҸҜиғҪеҸҜд»ҘзӣҙжҺҘеңЁеҲ—иЎЁдёҠдҪҝз”Ёе®ғпјҢдҪҶжҲ‘дёҚзЎ®е®ҡгҖӮ - rock3r
关键是在另一个视图上的android:weight="0"。 - unify

2

但我相信这将涉及将ListView重写为ScrollView? - Neil
@Neil,ListView继承自ScrollView。不需要重新编写 :) - rock3r
不,它不会。http://developer.android.com/reference/android/widget/ListView.html。 - Neil
哦,糟糕。你说得对。我不知道为什么会这么确信。感谢你指出来。 - rock3r

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