简体   繁体   English

Android-Listview不在ScrollView下滚动

[英]Android - Listview not Scrolling under a ScrollView

This my xml file that shows listview under linerlayout and scrollview. 这是我的xml文件,显示了linerlayout和scrollview下的listview。 How can I make my listview scroll? 如何使列表视图滚动? Because what I wanted is the background image under the linearlayout is scrolling too. 因为我想要的是linearlayout下的背景图像也在滚动。 But whenever I wanted to scroll the listview it rather scroll the whole layout. 但是,每当我想滚动列表视图时,它就会滚动整个布局。

<ScrollView 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"
    tools:context=".MainScreenEntered" 
   >

     <LinearLayout
        android:layout_width="320dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/mainscreen"
         >  

     <EditText
        android:id="@+id/txtSearch"
        android:layout_width="220dp"
        android:layout_height="40dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="130dp"
        android:background="@drawable/white"
        android:height="10dp"
        android:singleLine="true"
        android:textSize="15sp"
        android:hint="@string/search"
      />    

     <Button
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_marginLeft="250dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="-41dp"
        android:background="@drawable/btnsearch"
      />

    <ListView
        android:id="@+id/lvEntries"
        android:layout_width="255dp"
        android:layout_height="300dp"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="41dp"
        />

    <Button
        android:layout_width="280dp"
        android:layout_height="55dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="21dp"
        android:background="@drawable/btnaddentry"
        android:onClick="goToAddEntryScreen"
      />

     </LinearLayout>
</ScrollView>

You should not put ListView under a ScrollView. 您不应该将ListView放在ScrollView下。 ListView scrolls by itself. ListView自身滚动。 Instead you can add views as a header or footer to listview. 相反,您可以将视图添加为listview的页眉或页脚。

Quoting docs 报价文件

You should never use a ScrollView with a ListView, because ListView takes care of its own vertical scrolling. 永远不要将ScrollView与ListView一起使用,因为ListView负责其自身的垂直滚动。 Most importantly, doing this defeats all of the important optimizations in ListView for dealing with large lists, since it effectively forces the ListView to display its entire list of items to fill up the infinite container supplied by ScrollView. 最重要的是,这样做会挫败ListView处理大型列表的所有重要优化,因为它有效地迫使ListView显示其整个项目列表,以填充ScrollView提供的无限容器。

You can also use a RelativeLayout . 您还可以使用RelativeLayout Only ListView Scrolls the EditText and Buttons do not scroll. 仅ListView滚动EditText,而按钮不滚动。 Modify the below Accordingly 相应地修改以下内容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/button1"
        android:layout_marginTop="81dp"
        android:text="Button" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <ListView
        android:id="@+id/listView1"
        android:layout_above="@id/button1"
        android:layout_below="@id/button2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

    >
    </ListView>

</RelativeLayout>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM