Android 线性布局内部带有线性布局的ListView:我希望内部线性布局始终位于屏幕底部。

Android 线性布局内部带有线性布局的ListView:我希望内部线性布局始终位于屏幕底部。,android,android-layout,Android,Android Layout,我有一个ListView和一个LinearLayout它在一个LinearLayout中包含两个按钮这一个是两者的父项 我想做一个内线布局,它包含两个按钮,始终显示在屏幕底部,是否有这样做 目前,LinearLayout确实显示在屏幕底部。 但是,如果ListView变得太大,它将填满整个屏幕 对不起,我现在没有密码。但是格式看起来是这样的: <LinearLayout> <ListView> </ListView> <LinearLayout>

我有一个ListView和一个LinearLayout它在一个LinearLayout中包含两个按钮这一个是两者的父项

我想做一个内线布局,它包含两个按钮,始终显示在屏幕底部,是否有这样做

目前,LinearLayout确实显示在屏幕底部。 但是,如果ListView变得太大,它将填满整个屏幕

对不起,我现在没有密码。但是格式看起来是这样的:

 <LinearLayout>
<ListView>
</ListView>
<LinearLayout>
<button 1>
<button 2>
</LinearLayout>
</LinearLayout>
<LinearLayout>
    <ListView
        android:layout_height="0dp"
        android:layout_weight="1">
    </ListView>
    <LinearLayout
        android:layout_height="wrap_content">
        <button 1>
        <button 2>
    </LinearLayout>
</LinearLayout>

改用RelativeLayout,更准确地说是android:layout\u alignParentBottom属性:

<RelativeLayout >
    <ListView>
    </ListView>
    <LinearLayout
        // ...
        android:layout_alignParentBottom="true"
        // ...>
        <button 1>
        <button 2>
    </LinearLayout>
</RelativeLayout >

我通常使用RelativeLayout作为ListView的外部容器。 我使用添加一个页眉文本视图和一个页脚文本视图,另一个文本视图用作Emply listview警告。 在您的情况下,不需要页眉,页脚可能是带有所需按钮的线性布局

以下是布局的框架实现:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/rlHistory"
    >
    <LinearLayout
        android:id="@+id/llButtons"
        android:layout_alignParentBottom="true"
        android:layout_width="fill_parent"
        android:layout_height="48dp"
        android:padding="8dp"
        android:gravity="center"
        >
        <!-- Put your buttons HERE -->
    </LinearLayout>
    <ListView
        android:id="@+id/lvwHistory"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@id/llButtons"
        android:listSelector="@drawable/list_item_colors"
        android:background="@drawable/list_border"
        style="@style/ListViews"
    />
</RelativeLayout>

只需将按钮添加到它们的LinearLayout容器中。

我通常也会考虑使用RelativeLayout,但对于LinearLayout,您可以使用如下内容:

 <LinearLayout>
<ListView>
</ListView>
<LinearLayout>
<button 1>
<button 2>
</LinearLayout>
</LinearLayout>
<LinearLayout>
    <ListView
        android:layout_height="0dp"
        android:layout_weight="1">
    </ListView>
    <LinearLayout
        android:layout_height="wrap_content">
        <button 1>
        <button 2>
    </LinearLayout>
</LinearLayout>

如果要使用LinearLayout执行此操作,一种解决方案可能是设置外部LinearLayout的weightSum属性,然后将列表视图和内部LinearLayout的layout_weight属性设置为适当划分可用空间的值

如果只有两个按钮,如果外层的权重和设置为1,您可能希望在列表中执行layout_weight=0.75,在内层布局中执行layout_weight=0.25

我还认为,外部线性布局必须设置为布局高度,以匹配父级,以便填充所有窗口,并将内部线性布局的按钮放置在底部

它看起来像:

<LinearLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:weightSum="1">
    <ListView
        android:layout_height="0dp"
        android:layout_weight="0.75">
    </ListView>
    <LinearLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="0.25">
        <button 1>
        <button 2>
    </LinearLayout>
</LinearLayout>

希望它有帮助:

使用RelativeLayout。我想要的解决方案是首先将线性布局放入,然后用列表视图填充剩余空间。由于屏幕大小不同,百分比无法固定。如果按钮被渲染,那么剩下的空间将是listview,这会更好。