使用listview android滚动布局

时间:2015-03-20 00:11:01

标签: java android listview android-listview scrollview

我的问题是我的listview在absoulteLayout上工作得很完美,但底部的按钮不会显示出来!我将带有absoluteLayout的scrollview与所有项目(textview,button等)放在一起,在scrollview之外我放了listview,这也没用,只是滚动按钮但listview只是移动一点,如何设置滚动视图以查看按钮上的按钮并使列表视图有效? 我的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" />

3 个答案:

答案 0 :(得分:2)

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

  

一种布局,可让您指定其子项的确切位置(x / y坐标)。

因此,如果您没有看到按钮,那么因为它们位于设备屏幕边界之外。他们的位置是绝对 / 固定所以他们无论如何都会留在那里。

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

答案 1 :(得分:0)

可能性第一:

 <?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)

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

并且不使用Absolute Layout不推荐使用,原因是应用不会根据需要缩放到不同的屏幕尺寸。

答案 2 :(得分:0)

你应该使用RelativeLayout和底部的按钮,ListView放在按钮的顶部。

一般来说,AbsoluteLayout。除非你试图达到一个非常特定的目的,否则要避免使用布局。它被认为是绝对定位元素的反模式。要实现你所说的,可以选择RelativeLayout。