如何在按钮下方获取ListView

How to get ListView underneath buttons

现在我的列表视图位于最后一个按钮的右侧,但我希望它位于所有三个按钮的下方(它们都在同一行)。如何让我的列表视图位于我的按钮下方?

这是我的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:background="#000000"
tools:context=".Visualizer"
android:id="@+id/homePage">

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|left"
    android:background="@drawable/pic_icon"
    android:id="@+id/picButton"
    android:layout_gravity="left"/>

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|center"
    android:background="@drawable/cancel_that_pic"
    android:id="@+id/deletePicButton"
    />

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|right"
    android:background="@drawable/visual_blueblue"
    android:id="@+id/visIcon"
    android:layout_gravity="right"
   />

<ListView
    android:id="@+id/song_list"
    android:layout_width="fill_parent"
    android:layout_height="500dp" >
</ListView>

<Space
    android:id="@+id/blank_space"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal" />


</LinearLayout>

试试这个,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/homePage"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal|bottom"
    android:background="#000000"
    android:orientation="vertical"
    tools:context=".Visualizer" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/picButton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="left"
            android:background="@drawable/ic_launcher"
            android:gravity="top|left" />

        <ImageButton
            android:id="@+id/deletePicButton"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@drawable/ic_launcher"
            android:gravity="top|center" />

        <ImageButton
            android:id="@+id/visIcon"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="right"
            android:background="@drawable/ic_launcher"
            android:gravity="top|right" />
    </LinearLayout>

    <ListView
        android:id="@+id/song_list"
        android:layout_width="fill_parent"
        android:layout_height="500dp" >
    </ListView>

    <Space
        android:id="@+id/blank_space"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal" />

</LinearLayout>

我不知道这个布局是不是你想要的,因为一切都是水平的。我希望将父 LinearLayout 设置为垂直,然后添加另一个 LinearLayout。例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal|bottom"
android:orientation="vertical"
android:background="#000000"
tools:context=".Visualizer"
android:id="@+id/homePage">

<LinearLayout  
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal|bottom"
    android:orientation="horizontal"
    android:background="#000000">

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|left"
    android:background="@drawable/pic_icon"
    android:id="@+id/picButton"
    android:layout_gravity="left"/>

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|center"
    android:background="@drawable/cancel_that_pic"
    android:id="@+id/deletePicButton"/>

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:gravity="top|right"
    android:background="@drawable/visual_blueblue"
    android:id="@+id/visIcon"
    android:layout_gravity="right"/>
</LinearLayout>
<ListView
    android:id="@+id/song_list"
    android:layout_width="match_parent"
    android:layout_height="500dp" >
</ListView>

<Space
    android:id="@+id/blank_space"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal" />


</LinearLayout>

并且,请使用 xml 属性 "match_parent" 而不是 "fill_parent"。此外,您可能需要在这里做更多的事情,在一些小屏幕上可能会发生,由于您的 listView 高度为 500dp,因此并非所有内容都可见。

试试相对布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/appColor"
tools:context="SplashActivity">

<LinearLayout
    android:id="@+id/buttonLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:orientation="vertical">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ic_launcher" />
</LinearLayout>

<ListView
    android:id="@+id/listview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/buttonLayout">

</ListView>

</RelativeLayout>