使用列表视图滚动布局 android

scroll a layout with a listview android

我的问题是我的列表视图在 absoulteLayout 上运行完美,但底部的按钮没有显示!我放了一个带有所有项目(文本视图、按钮等)的 absoluteLayout 的滚动视图,在滚动视图之外我放了列表视图,这也不起作用,只是滚动按钮但列表视图只是移动了一点点,怎么能我放了一个滚动视图可以看到按钮上的按钮并使列表视图起作用? 我的 XML:

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<!-- The main content view -->

    <AbsoluteLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/Ab">

        <ListView
            android:layout_width="317dp"
            android:layout_height="429dp"
            android:id="@+id/listView"
            android:layout_gravity="center"
            android:layout_x="45dp"
            android:layout_y="41dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="This Works Monica!!"
            android:id="@+id/TV1"
            android:layout_gravity="center_horizontal"
            android:layout_x="120dp"
            android:layout_y="22dp" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:text="Play :D"
            android:id="@+id/TESTME"
            android:layout_gravity="center_horizontal|bottom"
            android:layout_x="190dp"
            android:layout_y="520dp" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:text="Pause"
            android:id="@+id/PAUSE"
            android:layout_x="110dp"
            android:layout_y="521dp" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="37dp"
            android:text="Lista"
            android:id="@+id/LISTA"
            android:layout_x="274dp"
            android:layout_y="520dp" />

        <CheckBox
            android:layout_width="84dp"
            android:layout_height="wrap_content"
            android:text="Lista?"
            android:id="@+id/CHECARL"
            android:layout_x="267dp"
            android:layout_y="490dp"
            android:checked="false" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="35dp"
            android:text="BorrarL"
            android:id="@+id/BORRARL"
            android:layout_x="20dp"
            android:layout_y="520dp" />
    </AbsoluteLayout>

<!-- The navigation drawer -->
<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@android:color/transparent"
    android:dividerHeight="0dp"
    android:background="#E6E6E7" />

您正在使用绝对布局,这意味着,来自文档:

A layout that lets you specify exact locations (x/y coordinates) of its children.

因此,如果您看不到按钮,那是因为它们位于设备屏幕范围之外。他们的位置是 absolute / fixed 所以无论如何他们都会呆在那里。

我建议更改为不同的布局。我不知道您正在构建哪种应用程序,但绝对布局通常不是最佳选择。

第一个可能性:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/background"
                android:clickable="true">


    <ListView
        android:id="@+id/allPaymentListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/addNewPayment"

        android:layout_marginTop="10dp"></ListView>

    <Button
        android:id="@+id/addNewPayment"
        android:layout_width="match_parent"
        android:layout_height="@dimen/primary_button_height"
        android:layout_alignParentBottom="true"
        android:layout_margin="10dp"
        android:background="@drawable/blackbutton"
        android:text="@string/add_new_card"
        android:textColor="@color/light_blue"/>


</RelativeLayout>

在这种情况下,按钮将始终显示在页面底部,列表视图下方。

第二种可能是向列表视图添加页脚: http://developer.android.com/reference/android/widget/ListView.html#addFooterView(android.view.View)

在这种情况下,带有按钮的视图将是列表视图中的最后一个元素。

并且不要使用已弃用的绝对布局,原因是该应用无法根据需要缩放到不同的屏幕尺寸。

您应该使用 RelativeLayout,按钮位于底部,ListView 位于按钮顶部。

一般来说,AbsoluteLayout 是。除非你试图完成一个非常具体的目的,否则要避免布局。绝对定位元素被认为是一种反模式。要实现您所说的,RelativeLayout 是可行的方法。